Skip to content

Commit f1a5035

Browse files
committed
readme 추가
1 parent 11e2d67 commit f1a5035

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

2015_09/03_PHP_Faker/readme.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
## Faker 패키지를 활용한 의미있는 테스트 데이타 만들기
2+
3+
- 발표 자료중 코드 부분을 Markdown 으로 옮겼습니다.
4+
- 발표 자료는 [여기](https://github.com/ModernPUG/meetup/blob/master/2015_09/03_PHP_Faker/PHP-Fake.pdf)에서 다운 받으세요.
5+
6+
### 설치
7+
8+
```sh
9+
composer require fzaninotto/faker
10+
```
11+
12+
## 사용
13+
### 기본 사용법
14+
15+
1. Faker\Factory::create() 로 Faker 객체 생성
16+
2. 생성된 객체의 property 를 호출하면 Faker 데이타가 생성됨
17+
3. property 는 생성할 데이타의 종류(Ex: name, address, phoneNumber)
18+
19+
20+
```php
21+
<?php
22+
23+
require_once ‘vendor/autoload.php';
24+
25+
$faker = Faker\Factory::create();
26+
27+
// generate data by accessing properties
28+
echo $faker->name;
29+
echo $faker->address;
30+
echo $faker->text;
31+
```
32+
### 사용자 정보 생성
33+
```php
34+
public function testUserCreate()
35+
{
36+
$faker = Faker\Factory::create();
37+
38+
$user = [
39+
'id' => $faker->randomNumber($nbDigits = NULL),
40+
'name' => $faker->name($gender = 'female'),
41+
'country' =>$faker->country,
42+
'address' => $faker->address,
43+
'phoneNumber' => $faker->phoneNumber,
44+
'company' => $faker->company,
45+
'birthDay' => $faker->dateTimeBetween('-50 years', '-20 years'),
46+
'email' => $faker->email, // safeEmail,freeEmail, etc..
47+
'homePage' => $faker->url,
48+
'creditCardType' => $faker->creditCardType,
49+
'creditCardNumber' => $faker->creditCardNumber,
50+
];
51+
52+
dump($user);
53+
}
54+
```
55+
56+
### 첨부 파일 정보 생성
57+
```php
58+
public function testAttachmentCreate()
59+
{
60+
$faker = Faker\Factory::create();
61+
62+
$attachment = [
63+
'id' => $faker->randomNumber($nbDigits = NULL),
64+
'user_id' => $faker->numberBetween($min = 1000, $max = 9000),
65+
'mimeType' => $faker->mimeType,
66+
'size' => (1024 * $faker->numberBetween($min = 12345678, $max = 987654321)),
67+
'path' => $faker->file($srcDir = '.' , $destDir = 'storage', $fullPath = false),
68+
];
69+
70+
dump($attachment);
71+
}
72+
73+
```
74+
75+
## Laravel 과 연동
76+
77+
### Model Factory 정의
78+
database/factories/ModelFactory.php 에 생성할 팩토리 정보 기술
79+
```php
80+
$factory->define(App\Author::class, function ($faker) {
81+
return [
82+
'name' => $faker->name,
83+
'email' => $faker->email,
84+
‘country' => $faker->country,
85+
‘birthDay' => $faker->dateTimeBetween('-50 years', '-20 years'),
86+
'password' => str_random(10),
87+
'remember_token' => str_random(10),
88+
];
89+
});
90+
```
91+
### Faker Model 생성
92+
두 번째 파라미터는 생성할 모델의 갯수
93+
```php
94+
factory('App\Author‘, 5)->make();
95+
```
96+
97+
### Persisting Factory Models
98+
- make() 는 모델을 생성만 하고 DB 에 입력하지 않음
99+
- 입력이 필요하면 create() 사용
100+
101+
```php
102+
factory('App\Author‘, 5)->create();
103+
```
104+
105+
106+
## 참고 자료 :
107+
108+
- PHP Faker : https://github.com/fzaninotto/Faker/
109+
- Laravel Model Factory : http://laravel.com/docs/5.1/testing#modelfactories
110+
- 발표자 블로그 : https://lesstif.com/pages/viewpage.action?pageId=26084077
111+
112+

0 commit comments

Comments
 (0)