Skip to content

Commit

Permalink
[compare] [9.x] 94e138a...550d859
Browse files Browse the repository at this point in the history
  • Loading branch information
russsiq committed Feb 9, 2022
1 parent 4afa4e3 commit cbcd171
Show file tree
Hide file tree
Showing 71 changed files with 3,803 additions and 2,095 deletions.
68 changes: 48 additions & 20 deletions docs/artisan.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,24 @@

Artisan – это интерфейс командной строки, входящий в состав Laravel. Он предлагает ряд полезных команд, которые помогут при создании приложения. Для просмотра списка всех доступных команд Artisan можно использовать команду `list`:

php artisan list
```shell
php artisan list
```

Каждая команда также включает в себя экран «справки», который отображает и описывает доступные аргументы и параметры команды. Чтобы просмотреть экран справки, используйте `help` перед именем команды:

php artisan help migrate
```shell
php artisan help migrate
```

<a name="laravel-sail"></a>
#### Laravel Sail

Если вы используете [Laravel Sail](sail.md) в качестве локальной среды разработки, не забудьте использовать командную строку `sail` для вызова команд Artisan. Sail выполнит ваши команды Artisan в контейнерах Docker вашего приложения:

./sail artisan list
```shell
./sail artisan list
```

<a name="tinker"></a>
### Tinker (REPL)
Expand All @@ -50,7 +56,9 @@ Laravel Tinker – это мощный REPL для фреймворка Laravel,

Все приложения Laravel по умолчанию включают Tinker. Однако вы можете установить Tinker с помощью Composer, если вы ранее удалили его из своего приложения:

composer require laravel/tinker
```shell
composer require laravel/tinker
```

> {tip} Ищете графический интерфейс для взаимодействия с приложением Laravel? Зацените [Tinkerwell](https://tinkerwell.app)!
Expand All @@ -59,11 +67,15 @@ Laravel Tinker – это мощный REPL для фреймворка Laravel,

Tinker позволяет взаимодействовать полностью со всем приложением Laravel из командной строки, включая модели Eloquent, задачи, события и многое другое. Чтобы войти в среду Tinker, выполните команду `tinker` Artisan:

php artisan tinker
```shell
php artisan tinker
```

Вы можете опубликовать конфигурационный файл Tinker с помощью команды `vendor:publish`:

php artisan vendor:publish --provider="Laravel\Tinker\TinkerServiceProvider"
```shell
php artisan vendor:publish --provider="Laravel\Tinker\TinkerServiceProvider"
```

> {note} Глобальный помощник `dispatch` и метод `dispatch` класса `Dispatchable` зависят от "garbage collection" для помещения задания в очередь. Следовательно, при использовании Tinker вы должны использовать `Bus::dispatch` или `Queue::push` для отправки заданий.
Expand Down Expand Up @@ -95,7 +107,9 @@ Tinker использует список «разрешенных» команд

Чтобы сгенерировать новую команду, используйте команду `make:command` [Artisan](artisan.md). Эта команда поместит новый класс команды в каталог `app/Console/Commands` вашего приложения. Если этот каталог не существует в вашем приложении, то Laravel предварительно создаст его:

php artisan make:command SendEmails
```shell
php artisan make:command SendEmails
```

<a name="command-structure"></a>
### Структура команды
Expand Down Expand Up @@ -216,10 +230,10 @@ Tinker использует список «разрешенных» команд
По желанию можно сделать аргументы необязательными или определить значения по умолчанию:

// Необязательный аргумент ...
mail:send {user?}
'mail:send {user?}'

// Необязательный аргумент с заданным по умолчанию значением ...
mail:send {user=foo}
'mail:send {user=foo}'

<a name="options"></a>
### Параметры
Expand All @@ -235,7 +249,9 @@ Tinker использует список «разрешенных» команд

В этом примере при вызове команды Artisan может быть указан переключатель `--queue`. Если переключатель `--queue` передан, то значение этого параметра будет `true`. В противном случае значение будет `false`:

php artisan mail:send 1 --queue
```shell
php artisan mail:send 1 --queue
```

<a name="options-with-values"></a>
#### Параметры со значениями
Expand All @@ -251,46 +267,56 @@ Tinker использует список «разрешенных» команд

В этом примере пользователь может передать значение для параметра. Если параметр не указан при вызове команды, то его значение будет `null`:

php artisan mail:send 1 --queue=default
```shell
php artisan mail:send 1 --queue=default
```

Параметру можно присвоить значение по умолчанию, указав его после имени. Если значение параметра не передано пользователем, то будет использовано значение по умолчанию:

mail:send {user} {--queue=default}
'mail:send {user} {--queue=default}'

<a name="option-shortcuts"></a>
#### Псевдонимы параметров

Чтобы назначить псевдоним при определении параметра, вы можете указать его перед именем параметра и использовать символ разделителя `|` для отделения псевдонима от полного имени параметра:

mail:send {user} {--Q|queue}
'mail:send {user} {--Q|queue}'

При вызове команды в терминале псевдонимы опций должны начинаться с одиночного дефиса:

php artisan mail:send 1 -Q
```shell
php artisan mail:send 1 -Q
```

<a name="input-arrays"></a>
### Массивы данных

Чтобы определить, что аргументы или параметры ожидают массив данных, используйте метасимвол `*`. Во-первых, давайте рассмотрим пример, в котором описывается аргумент как массив данных:

mail:send {user*}
'mail:send {user*}'

При вызове этого метода аргументы `user` могут передаваться по порядку в командную строку. Например, следующая команда установит значение `user` как `['foo', 'bar']`:

php artisan mail:send foo bar
```shell
php artisan mail:send foo bar
```

Метасимвол `*` можно комбинировать с необязательным определением аргумента, чтобы разрешить ноль или более экземпляров аргумента:

mail:send {user?*}
'mail:send {user?*}'

<a name="option-arrays"></a>
#### Параметр со множеством значений

При определении параметра, ожидающего множество значений, каждое значение передаваемого команде параметра должно иметь префикс с именем параметра:

mail:send {user} {--id=*}
'mail:send {user} {--id=*}'

php artisan mail:send --id=1 --id=2
Такую команду можно вызвать, передав несколько аргументов `--id`:

```shell
php artisan mail:send --id=1 --id=2
```

<a name="input-descriptions"></a>
### Описания вводимых данных
Expand Down Expand Up @@ -642,7 +668,9 @@ class StartServer extends Command implements SignalableCommandInterface

Команды `make` консоли Artisan используются для создания различных классов, таких как контроллеры, задания, миграции и тесты. Эти классы создаются с помощью файлов «заготовок», которые заполняются значениями на основе ваших входных данных. Иногда требуется внести небольшие изменения в файлы, создаваемые с помощью Artisan. Для этого можно использовать команду `stub:publish`, чтобы опубликовать наиболее распространенные заготовки для их дальнейшего изменения:

php artisan stub:publish
```shell
php artisan stub:publish
```

Опубликованные заготовки будут расположены в каталоге `stubs` корня вашего приложения. Любые изменения, внесенные вами в эти заготовки, будут учтены при создании соответствующих классов с помощью команд `make` Artisan.

Expand Down
6 changes: 4 additions & 2 deletions docs/authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,8 +354,10 @@ Laravel Breeze – это минимальная и простая реализ

Если вы используете PHP FastCGI и Apache для своего приложения Laravel, то аутентификация HTTP Basic может работать некорректно. Чтобы исправить эти проблемы, в файл `.htaccess` вашего приложения можно добавить следующие строки:

RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
```apache
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
```

<a name="stateless-http-basic-authentication"></a>
### Basic HTTP-аутентификация без сохранения состояния
Expand Down
16 changes: 10 additions & 6 deletions docs/authorization.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,11 +245,15 @@ Gate::denyIf(fn ($user) => $user->banned());

Чтобы сгенерировать новую политику, используйте команду `make:policy` [Artisan](artisan.md). Эта команда поместит новый класс политики в каталог `app/Policies` вашего приложения. Если этот каталог не существует в вашем приложении, то Laravel предварительно создаст его:

php artisan make:policy PostPolicy
```shell
php artisan make:policy PostPolicy
```

Команда `make:policy` сгенерирует пустой класс политики. Если вы хотите создать класс с заготовками методов политики, связанных с просмотром, созданием, обновлением и удалением ресурса, то вы можете указать параметр `--model` при выполнении команды:

php artisan make:policy PostPolicy --model=Post
```shell
php artisan make:policy PostPolicy --model=Post
```

<a name="registering-policies"></a>
### Регистрация политик
Expand Down Expand Up @@ -663,7 +667,7 @@ Laravel содержит посредника, который может авт

При написании шаблонов Blade бывает необходимо отобразить часть страницы только в том случае, если пользователь авторизован для выполнения конкретного действия. Например, вы можете показать форму обновления поста в блоге, только если пользователь действительно уполномочен обновить сообщение. В этой ситуации вы можете использовать директивы `@can` и `@cannot`:

```html
```blade
@can('update', $post)
<!-- Текущий пользователь может обновить пост ... -->
@elsecan('create', App\Models\Post::class)
Expand All @@ -681,7 +685,7 @@ Laravel содержит посредника, который может авт

Эти директивы являются удобными ярлыками выражений `@if` и `@unless`. Приведенные выше директивы `@can` и `@cannot` эквивалентны следующим выражениям:

```html
```blade
@if (Auth::user()->can('update', $post))
<!-- Текущий пользователь может обновить пост ... -->
@endif
Expand All @@ -693,7 +697,7 @@ Laravel содержит посредника, который может авт

Вы также можете определить, авторизован ли пользователь для выполнения любого из указанных в массиве действия. Для этого используйте директиву `@canany`:

```html
```blade
@canany(['update', 'view', 'delete'], $post)
<!-- Текущий пользователь может обновить, просмотреть или удалить пост ... -->
@elsecanany(['create'], \App\Models\Post::class)
Expand All @@ -706,7 +710,7 @@ Laravel содержит посредника, который может авт

Как и большинство других методов авторизации, вы можете передать имя класса в директивы `@can` и `@cannot`, если для действия не требуется экземпляр модели:

```html
```blade
@can('create', App\Models\Post::class)
<!-- Текущий пользователь может создавать посты ... -->
@endcan
Expand Down
Loading

0 comments on commit cbcd171

Please sign in to comment.