Skip to content

Commit c76a2aa

Browse files
committed
Merge branch 'kr-5.6' of github.com:laravelkr/docs into kr-5.6
2 parents 867cc4f + f284d17 commit c76a2aa

30 files changed

+257
-84
lines changed

artisan.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454

5555
> {팁} 보다 나은 코드 재사용성을 위해, 콘솔 명령어를 가볍게 유지하고 애플리케이션 서비스들이 해당 작업을 수행할 수 있도록 하는 것이 좋습니다. 아래 예제에서 우리는 "대용량 전송" 메일 전송을 위해 서비스 클래스를 주입합니다.
5656
57-
예제 명령을 살펴 보겠습니다. 명령어 클래스의 생성자에서는 필요한 의존성 주입이 가능합니다. 라라벨의 [서비스 컨테이너](/docs/{{version}}/container)자동으로 생성자에서 타입이 지정된 의존객체들을 주입해 줄 것입니다.
57+
예제 명령을 살펴 보겠습니다. 명령어 클래스는 생성자 또는 `handle` 메소드를 통해 필요한 의존성 주입을 할 수 있습니다. 라라벨의 [서비스 컨테이너](/docs/{{version}}/container)생성자 또는 `handle`타입이 지정된 의존객체들을 자동으로 주입해 줄 것입니다.
5858

5959
<?php
6060

@@ -374,7 +374,7 @@
374374

375375
$bar->finish();
376376

377-
보다 자세한 옵션에 대해서는 [Symfony 진행률 표시줄 구성 컴포넌트 문서](https://symfony.com/doc/2.7/components/console/helpers/progressbar.html) 확인하십시오.
377+
보다 자세한 옵션에 대해서는 [Symfony 진행률 표시줄 구성 컴포넌트 문서](https://symfony.com/doc/current/components/console/helpers/progressbar.html) 확인하십시오.
378378

379379
<a name="registering-commands"></a>
380380
## 명령어 등록하기

authorization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Gate는 컨트롤러와 같이 `Class@method` 스타일의 콜백 문자열 형
6060
{
6161
$this->registerPolicies();
6262

63-
Gate::define('update-post', 'PostPolicy@update');
63+
Gate::define('update-post', 'App\Policies\PostPolicy@update');
6464
}
6565

6666
#### 리소스 Gate

broadcasting.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Redis 브로드캐스터가 이벤트를 발행하면, 이벤트는 이벤트에
158158
/**
159159
* Get the channels the event should broadcast on.
160160
*
161-
* @return array
161+
* @return \Illuminate\Broadcasting\Channel|array
162162
*/
163163
public function broadcastOn()
164164
{
@@ -581,7 +581,11 @@ HTTP 라우트와 같이 채널 라우트는 명시적 그리고 묵시적 [라
581581
<a name="client-events"></a>
582582
## 클라이언트 이벤트
583583

584-
때로는 라라벨 애플리케이션을 거치지 않고, 연결된 다른 클라이언트에게 이벤트를 브로드캐스트 해야할 수도 있습니다. 이는 특정한 경우 유용할 수 있는데, 어떤 사용자가 화면에 메세지를 "입력"하고 있다는 것을 다른 사용자에게 알리는 경우가 그렇습니다. 클라이언트 이벤트를 브로드 캐스트하려면, Echo의 `whisper` 메소드를 사용하면 됩니다:
584+
> {tip} [Pusher](https://pusher.com)를 사용하는 경우, 클라이언트 이벤트를 전송하려면 [응용 프로그램 대시 보드](https://dashboard.pusher.com/)의 "App Settings"섹션에서 "Client Events" 옵션을 활성화해야합니다.
585+
586+
때로는 라라벨 애플리케이션을 거치지 않고, 연결된 다른 클라이언트에게 이벤트를 브로드캐스트 해야할 수도 있습니다. 이는 특정한 경우 유용할 수 있는데, 어떤 사용자가 화면에 메세지를 "입력"하고 있다는 것을 다른 사용자에게 알리는 경우가 그렇습니다.
587+
588+
클라이언트 이벤트를 브로드 캐스트하려면, Echo의 `whisper` 메소드를 사용하면 됩니다:
585589

586590
Echo.private('chat')
587591
.whisper('typing', {

cache.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- [캐시에서 아이템 찾기](#retrieving-items-from-the-cache)
88
- [캐시에 아이템 저장하기](#storing-items-in-the-cache)
99
- [캐시에서 아이템 삭제하기](#removing-items-from-the-cache)
10+
- [원자 잠금장치](#atomic-locks
1011
- [캐시 헬퍼 함수](#the-cache-helper)
1112
- [캐시 태그](#cache-tags)
1213
- [태그가 추가된 캐시 아이템 저장하기](#storing-tagged-cache-items)
@@ -200,6 +201,35 @@ Redis 설정과 관련된 보다 자세한 사항은 [라라벨 Redis 문서](/d
200201

201202
> {note} 모든 캐시를 비우는 것은 캐시에서 모든 항목이 제거된다는 것을 의미합니다. 애플리케이션의 다른 부분에서 공유하는 캐시를 제거할 때에 주의하십시오.
202203
204+
<a name="atomic-locks"></a>
205+
### 원자 잠금장치
206+
207+
> {note} 이 기능을 활용하려면, 애플리케이션이 기본 캐시 드라이버로 `memcached` 또는 `redis` 캐시 드라이버를 사용해야합니다. 또한 모든 서버는 동일한 중앙 캐시 서버와 통신해야합니다.
208+
209+
원자 잠금장치(Atomic-locks)은 경쟁 조건에 대한 걱정없이 분산 잠금장치(lock)를 조작 할 수있게합니다. 예를 들어 [Laravel Forge](https://forge.laravel.com)는 원자 잠금장치(Atomic-locks)을 사용하여 한 번에 하나의 원격 작업 만 서버에서 실행되도록합니다. `Cache::lock` 메소드를 사용하여 잠금장치(lock)을 생성하고 관리 할 수 있습니다 :
210+
211+
if (Cache::lock('foo', 10)->get()) {
212+
// Lock acquired for 10 seconds...
213+
214+
Cache::lock('foo')->release();
215+
}
216+
217+
`get` 메소드는 Closure를 사용할 수 있습니다. Closure가 실행 된 후 Laravel은 자동으로 잠금장치(lock)을 해제합니다.
218+
219+
Cache::lock('foo')->get(function () {
220+
// Lock acquired indefinitely and automatically released...
221+
});
222+
223+
요청한 순간에 잠금 장치를 사용할 수없는 경우 라라벨에 지정된 시간 (초) 동안 대기하도록 지시 할 수 있습니다. 지정된 제한 시간 내에 잠금을 획득 할 수 없으면 `Illuminate\Contracts\Cache\LockTimeoutException` 이 발생합니다.
224+
225+
if (Cache::lock('foo', 10)->block(5)) {
226+
// Lock acquired after waiting maximum of 5 seconds...
227+
}
228+
229+
Cache::lock('foo', 10)->block(5, function () {
230+
// Lock acquired after waiting maximum of 5 seconds...
231+
});
232+
203233
<a name="the-cache-helper"></a>
204234
### 캐시 헬퍼 함수
205235

collections.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@
723723
]
724724
*/
725725

726-
문자로 된 `key` 를 전달하는 것에 더해서, 콜백을 전달할 수도 있습니다. 콜백은 그룹으로 지정할 키를 반환해야 합니다:
726+
문자로 된 `key` 를 전달하는 대신 콜백을 전달할 있습니다. 콜백은 그룹으로 지정할 키를 반환해야 합니다:
727727

728728
$grouped = $collection->groupBy(function ($item, $key) {
729729
return substr($item['account_id'], -3);

contributions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
- [라라벨 홈스테드](https://github.com/laravel/homestead)
3030
- [라라벨 홈스테드 빌드스크립트](https://github.com/laravel/settler)
3131
- [라라벨 Horizon](https://github.com/laravel/horizon)
32+
- [라라벨 Nova](https://github.com/laravel/nova-issues)
3233
- [라라벨 패스포트(Passport)](https://github.com/laravel/passport)
3334
- [라라벨 스카웃(Scout)](https://github.com/laravel/scout)
3435
- [라라벨 Socialite](https://github.com/laravel/socialite)

controllers.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@
9696

9797
Route::get('user/{id}', 'ShowProfile');
9898

99+
Artisan 커맨드 `make:controller``--invokable` 옵션을 사용하여 호출 가능한 컨트롤러를 생성 할 수 있습니다 :
100+
101+
php artisan make:controller ShowProfile --invokable
102+
99103
<a name="controller-middleware"></a>
100104
## 컨트롤러 미들웨어
101105

@@ -222,15 +226,15 @@ API에서 사용할 리소스 라우트를 선언하는 경우, 일반적으로
222226
<a name="restful-naming-resource-route-parameters"></a>
223227
### 리소스 라우트 파리미터 이름 지정하기
224228

225-
기본적으로 `Route::resource` 는 리소스 이름을 기반으로한 리소스 라우트들을 위한 라우트 파라미터들을 생성합니다. 여러분은 옵션 배열에 `parameters` 를 전달하여 손쉽게 각각의 리소스 마다 이를 덮어쓸 수 있습니다:
229+
기본적으로 `Route::resource` 는 리소스 라우트들을 위한 리소스 이름을 "단일화된" 버전을 기반으로 라우트 파라미터들을 생성합니다. 사용자는 각각의 리소스마다 `parameters` 메소드를 사용하여 손쉽게 이를 덮어쓸 수 있습니다. `parameters` 메소드로 전달 된 배열은 리소스의 이름과 파라미터 이름의 연관 배열이어야합니다 :
226230

227-
Route::resource('user', 'AdminUserController')->parameters([
228-
'user' => 'admin_user'
231+
Route::resource('users', 'AdminUserController')->parameters([
232+
'users' => 'admin_user'
229233
]);
230234

231235
위의 예제는 리소스의 `show` 라우트에서 다음의 URI를 생성합니다:
232236

233-
/user/{admin_user}
237+
/users/{admin_user}
234238

235239
<a name="restful-localizing-resource-uris"></a>
236240
### 리소스 URI의 지역화(다국어 동사처리)

database.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ SELECT문에서 사용하는 데이터베이스와 INSERT, UPDATE 그리고 DELE
108108

109109
`select` 메소드의 첫번째 인자는 raw SQL 쿼리이고, 두번째는 쿼리에 바이딩될 매개변수 입니다. 일반적으로 매개 변수들은 `where` 절을 위한 값들입니다. 매개변수 바인딩은 SQL 인젝션을 방지하기 위해 제공됩니다.
110110

111-
`select` 메소드는 항상 결과를 `배열`로 반환합니다. 배열안의 값들은 PHP 의 `StdClass` 객체 형태로 다음과 같이 결과 값에 엑세스 할 수 있습니다.
111+
`select` 메소드는 항상 결과를 `배열`로 반환합니다. 배열안의 값들은 PHP 의 `stdClass` 객체 형태로 다음과 같이 결과 값에 엑세스 할 수 있습니다.
112112

113113
foreach ($users as $user) {
114114
echo $user->name;

eloquent-relationships.md

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -120,41 +120,6 @@ Eloquent는 또한 외래 키가 부모의 `id` 컬럼(또는 사용자가 정
120120
return $this->belongsTo('App\User', 'foreign_key', 'other_key');
121121
}
122122

123-
<a name="default-models"></a>
124-
#### 기본 모델
125-
126-
`belongsTo` 관계에서 주어진 관계가 만약 `null` 인 경우에 반환할 기본모델을 정의할 수 있습니다. 이 패턴은 [Null 오브젝트 패턴](https://en.wikipedia.org/wiki/Null_Object_pattern) 이라고 하며 코드에서 조건식을 제거하는데 도움이 됩니다. 다음의 예제에서 `user` 관계는 포스트에 추가된 `user` 가 없는 경우 비어 있는 `App/User` 모델을 반환합니다:
127-
128-
/**
129-
* Get the author of the post.
130-
*/
131-
public function user()
132-
{
133-
return $this->belongsTo('App\User')->withDefault();
134-
}
135-
136-
기본 모델에 속성을 구성하려면, `withDefault` 메소드에 배열 또는 클로저를 전달하면 됩니다:
137-
138-
/**
139-
* Get the author of the post.
140-
*/
141-
public function user()
142-
{
143-
return $this->belongsTo('App\User')->withDefault([
144-
'name' => 'Guest Author',
145-
]);
146-
}
147-
148-
/**
149-
* Get the author of the post.
150-
*/
151-
public function user()
152-
{
153-
return $this->belongsTo('App\User')->withDefault(function ($user) {
154-
$user->name = 'Guest Author';
155-
});
156-
}
157-
158123
<a name="one-to-many"></a>
159124
### 1:*(일대다) 관계 정의하기
160125

@@ -225,7 +190,7 @@ Eloquent는 또한 외래 키가 부모의 `id` 컬럼(또는 사용자가 정
225190

226191
echo $comment->post->title;
227192

228-
위의 예에서 Eloqent는 `Comment` 모델의 `post_id``Post` 모델의 `id`를 비교해볼 것입니다. Eloquent는 relationship 메소드의 이름을 검사하고 메소드 이름에 `_id` 붙여서 외래 키의 기본 이름을 결정합니다. 하지만 `Comment` 모델의 외래 키가 `post_id`가 아니라면 커스텀 키 이름을 두번째 인자로 `belongsTo`에 전달하면 됩니다:
193+
위의 예에서 Eloqent는 `Comment` 모델의 `post_id``Post` 모델의 `id`를 비교해볼 것입니다. Eloquent는 relationship 메소드의 이름을 검사하고 메소드 이름 뒤에 `_`와 기본 키 컬럼을 붙여서 외래 키의 기본 이름을 결정합니다. 하지만 `Comment` 모델의 외래 키가 `post_id`가 아니라면 커스텀 키 이름을 두번째 인자로 `belongsTo`에 전달하면 됩니다:
229194

230195
/**
231196
* Get the post that owns the comment.
@@ -360,7 +325,7 @@ Pivot 테이블이 자동으로 유지되는 `created_at`와 `updated_at` 타임
360325

361326
#### 커스텀 중간 테이블 모델 정의하기
362327

363-
관계의 중간 테이블을 표현하기 위해서 커스텀 모델을 정의하려면, 관계를 정의할 때 `using` 메소드를 호출하면 됩니다. 관계의 중간 테이블을 나타내는 데 사용되는 모든 커스텀 모델은 `Illuminate\Database\Eloquent\Relations\Pivot` 클래스를 상속해야합니다. 예를 들어, 커스텀 `UserRole` 피벗 모델을 사용하는 `Role` 을 정의할 수 있습니다.
328+
관계의 중간 테이블을 표현하기 위해서 커스텀 모델을 정의하려면, 관계를 정의할 때 `using` 메소드를 호출하면 됩니다. 커스텀 다대다 피벗 모델은 `Illuminate\Database\Eloquent\Relations\Pivot` 클래스를 확장해야하며 커스텀 다형성 다대다 피벗 모델은 `Illuminate\Database\Eloquent\Relations\MorphPivot` 클래스를 확장해야합니다. 예를 들어, 커스텀 `UserRole` 피벗 모델을 사용하는 `Role` 을 정의할 수 있습니다.
364329

365330
<?php
366331

@@ -944,6 +909,41 @@ Eloquentsms 관계에 새로운 모델을 추가하는 편리한 메소드들을
944909

945910
$user->save();
946911

912+
<a name="default-models"></a>
913+
#### 기본 모델
914+
915+
`belongsTo` 관계에서 주어진 관계가 만약 `null` 인 경우에 반환할 기본모델을 정의할 수 있습니다. 이 패턴은 [Null 오브젝트 패턴](https://en.wikipedia.org/wiki/Null_Object_pattern) 이라고 하며 코드에서 조건식을 제거하는데 도움이 됩니다. 다음의 예제에서 `user` 관계는 포스트에 추가된 `user` 가 없는 경우 비어 있는 `App/User` 모델을 반환합니다:
916+
917+
/**
918+
* Get the author of the post.
919+
*/
920+
public function user()
921+
{
922+
return $this->belongsTo('App\User')->withDefault();
923+
}
924+
925+
기본 모델에 속성을 구성하려면, `withDefault` 메소드에 배열 또는 클로저를 전달하면 됩니다:
926+
927+
/**
928+
* Get the author of the post.
929+
*/
930+
public function user()
931+
{
932+
return $this->belongsTo('App\User')->withDefault([
933+
'name' => 'Guest Author',
934+
]);
935+
}
936+
937+
/**
938+
* Get the author of the post.
939+
*/
940+
public function user()
941+
{
942+
return $this->belongsTo('App\User')->withDefault(function ($user) {
943+
$user->name = 'Guest Author';
944+
});
945+
}
946+
947947
<a name="updating-many-to-many-relationships"></a>
948948
### 다대다 관계
949949

eloquent.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,8 @@ Eloquent 모델은 여러 이벤트들을 발생시켜 모델의 라이프사이
732732

733733
데이터베이스에서 모델이 존재하고 조회가 되었을때 `retrieved` 이벤트가 발생합니다. 새로운 모델이 처음으로 저장되었을 때 `creating``created` 이벤트가 발생합니다. 모델이 이미 데이터베이스에 존재할 때 `save` 메소드가 호출된다면 `updating` / `updated` 이벤트가 발생합니다. 하지만 이 두 경우 모두 `saving` / `saved` 이벤트가 발생할 것입니다.
734734

735+
> {note} Eloquent를 통해서 여러개의 모델을 업데이트 할 때, 변경되는 모델에 대한 `saved``updated` 모델 이벤트는 발생되지 않습니다. 이 이유는 여러개의 모델을 업데이트 할 때 실제로 모델이 조회되는 것이 아니기 때문입니다.
736+
735737
이렇게 하기 위해서, Eloquent 모델의 라이프사이클의 다양한 지점을 고유한 이벤트 클래스에 맵핑하는 `$dispatchesEvents` 속성을 Eloquent 모델에 정의하면 됩니다:
736738

737739
<?php

helpers.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1346,18 +1346,24 @@ exception 의 응답 텍스트를 제공하거나, 커스텀 헤더를 지정할
13461346
<a name="method-optional"></a>
13471347
#### `optional()` {#collection-method}
13481348

1349-
`optional` 함수는 인자를 전달받아 해당 객체의 프로퍼티에 엑세스 하거나, 메소드를 호출할 수 있도록 합니다. 지정된 객체가 `null` 이라면, 프로퍼티와 메소드는 에러를 유발하는 대신에 `null` 을 반환합니다:
1349+
`optional` 함수는 인자를 전달받아 해당 객체의 프로퍼티에 엑세스 합니다. 지정된 객체가 `null` 이라면, 프로퍼티에 엑세스 할 때 에러를 유발하는 대신에 `null` 을 반환합니다:
13501350

13511351
return optional($user->address)->street;
13521352

13531353
{!! old('name', optional($user)->name) !!}
13541354

1355-
`optional` 함수는 두번째 인자로 클로저를 받을 수 있습니다. 첫번째 인자가 `null`이 아닌경우, 클로저가 호출됩니다:
1355+
또한 반환받은 객체에 메소드를 호출할수도 있습니다. 프로퍼티에 엑세스 하는 것과 같이, 주어진 객체가 `null` 이라면, 메소드 호출은 에러를 유발하는 대신에 `null`을 반환합니다:
1356+
1357+
return optional($user)->getTwitterProfile();
1358+
1359+
호출하려는 메소드가 객체에 실제로 존재하지 않는, 클로저를 `optional` 함수의 두번째 인자로 전달 할 수 있습니다:
13561360

13571361
return optional(User::find($id), function ($user) {
1358-
return new DummyUser;
1362+
return TwitterApi::findUser($user->twitter_id);
13591363
});
13601364

1365+
주어진 객체가 `null`이 아니라면, 클로저가 호출되어 결과값을 반환합니다. 만약 주어진 객체가 실제로 `null` 이라면, 클로저는 호출되지 않고 `optional` 헬퍼함수는 에러를 유발하는 대신에 `null`을 반환합니다.
1366+
13611367
<a name="method-policy"></a>
13621368
#### `policy()` {#collection-method}
13631369

homestead.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Git 저장소를 복제하여 홈스테드를 설치할 수 있습니다. 여러
106106
cd ~/Homestead
107107

108108
// Clone the desired release...
109-
git checkout v7.9.0
109+
git checkout v7.16.1
110110

111111
홈스테드 저장소를 복제한 뒤에, 홈스테드 디렉토리에서 `bash init.sh` 명령어를 통해서 `Homestead.yaml` 설정 파일을 생성할 수 있습니다. 홈스테드 디렉토리에 `Homestead.yaml` 파일이 생성될 것입니다.
112112

@@ -408,11 +408,13 @@ Mailhog를 사용하면 실제로 메일을 받는 사람에게 메일을 보내
408408
<a name="configuring-minio"></a>
409409
### Minio 설정하기
410410

411-
Minio 는 홈스테드 머신에 포트 9600번을 사용하여 S3와 호환되는 스토리지 레이어를 제공합니다. Minio를 사용하려면 `Homestead.yaml` 파일에 다음의 설정 내용을 추가하십시오:
411+
Minio 는 Amazon S3 API와 호환되는 오픈소스 객체 스토리지 서버입니다. Minio를 설치하려면 `Homestead.yaml` 파일에 다음의 설정 내용을 추가하십시오:
412412

413413
minio: true
414414

415-
다음으로 `config/filesystems.php` 설정 파일에 S3 디스크 설정을 구성해야 합니다. `url` 키를 `endpoint` 로 수정하고, `use_path_style_endpoint` 옵션을 디스크 설정 옵션에 추가해야 합니다:
415+
기본적으로 Minio는 9600포트를 사용합니다. `http://homestead:9600/` 을 방문하여 Minio 제어판에 엑세스 할 수 있습니다. 기본 엑세스 키는 `homestead` 이고, 기본 비밀 키는 `secretkey` 입니다. Minio에 엑세스 할 때는 항상 `us-east-1` 리전을 사용해야합니다.
416+
417+
Minio를 사용하기 위해서는 설정 파일 `config/filesystems.php` 에서 S3 디스크 설정을 수정해야합니다. 디스크 구성에 `use_path_style_endpoint` 옵션을 추가하고 `url` 키를 `endpoint` 로 변경해야합니다 :
416418

417419
's3' => [
418420
'driver' => 's3',
@@ -424,7 +426,7 @@ Minio 는 홈스테드 머신에 포트 9600번을 사용하여 S3와 호환되
424426
'use_path_style_endpoint' => true
425427
]
426428

427-
마지막으로, `.env` 파일에 `AWS_URL` 을 수정해야 합니다:
429+
마지막으로 `.env` 파일에 다음 옵션이 있는지 확인하십시오 :
428430

429431
AWS_ACCESS_KEY_ID=homestead
430432
AWS_SECRET_ACCESS_KEY=secretkey

horizon.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Horizon은 Redis Queue를 사용하는 라라벨을 위해서 아름다운 대
2020
<a name="installation"></a>
2121
## 설치하기
2222

23-
> {note} Horizon은 비동기 프로세스 시그널을 사용 하므로 PHP 7.1이상이 필요합니다.
23+
> {note} Horizon은 비동기 프로세스 시그널을 사용 하므로 PHP 7.1이상이 필요합니다. 또한, `queue` 설정 파일에 큐-queue 드라이버가 `redis` 로 되어 있어야 합니다.
2424
2525
컴포저-Composer를 사용하여 라라벨 프로젝트에 Horizon을 설치 합니다:
2626

0 commit comments

Comments
 (0)