## Фронтенд Файлы находятся в каталоге проекта /resources/assets/. ### Структура файлов: * api — каталог с интерфейсами для бэкенда; * components — библиотека общих компонентов; * filters — фильтры; * images — ресурсы с изображениями; * lang — поддержка нескольких языков; * libs — библиотека методов расширения; * router — конфигурация маршрутизации; * store — настройки Vuex; * styles — библиотека стилей; * utils — методы запросов и общие методы, упакованные; * views — интерфейс для фронтенда. ## Бэкенд **Прочитайте внимательно документацию по разработке Laravel 5.5.** По умолчанию логин — admin@admin.com, пароль — 123456. Общие функции написаны в файле app/Helpers/helpers.php. ## Бэкенд ### Создание Swagger-ui интерфейса документации 1. Выполните команду php artisan vendor:publish. Это действие публикует содержимое пакета. 2. Напишите комментарии к интерфейсу. 3. Сгенерируйте документацию с помощью команды php artisan l5-swagger:generate. 4. Получите доступ к доменному имени вашего проекта +/api/documentation. ### Часто используемые команды | Команда | Описание | | --- | --- | | php artisan make:controller Controller | Создаёт контроллер. | | php artisan make:model Model | Создаёт модель. | | php artisan make:migration create_name_table | Создаёт таблицу базы данных. | | php artisan queue:table | Создаёт таблицы очередей (необходимо выполнить миграцию для активации). | | php artisan make:job SendEmail | Создаёт класс задания. | | php artisan make:request CreateArticleRequest | Создаёт запрос на создание статьи. | | php artisan migrate:rollback | Откатывает последнюю миграцию. | | php artisan migrate:reset | Откатывает все миграции. ## Часто используемые сторонние пакеты #### Управление правами доступа Spatie/laravel-permission. #### Графический код подтверждения Выполните команду composer require mews/captcha. Добавьте строку Mews\Captcha\CaptchaServiceProvider::class в массив провайдеров файла config/app.php. Также добавьте строку 'Captcha' => Mews\Captcha\Facades\Captcha::class в файл config/app.php в массив псевдонимов. Выполните php artisan vendor:publish для генерации файла config/captcha.php. #### Пакет обработки изображений Выполните composer require intervention/image. Добавьте строки Intervention\Image\ImageServiceProvider::class и 'Image' => Intervention\Image\Facades\Image::class в файл config/app.php в массивы провайдеров и псевдонимов соответственно. Затем выполните php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5" для генерации файла config/image.php. Чтобы изменить размер указанного изображения, используйте следующий код: ``` $img = Image::make('images/avatar.jpg')->resize(200, 200); ``` Для вставки водяного знака, расположенного в правом нижнем углу исходного изображения на расстоянии 10 пикселей от нижнего края и 15 пикселей от правого края, используйте этот код: ``` $img->insert('images/watermark.png', 'bottom-right', 15, 10); ``` Чтобы сохранить обработанное изображение в другом месте, используйте код: ``` $img->save('images/new_avatar.jpg'); ``` Логику обработки можно выразить через цепочку выражений: ``` $img = Image::make('images/avatar.jpg')->resize(200, 200)->insert('images/new_avatar.jpg', 'bottom-right', 15, 10); ``` #### Excel-пакет Выполните composer require "maatwebsite/excel:~2.1.0". Добавьте Maatwebsite\Excel\ExcelServiceProvider::class в массив провайдеров файла config/app.php и 'Excel' => Maatwebsite\Excel\Facades\Excel::class в массив псевдонимов того же файла. После этого выполните php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" для создания файла config/excel.php. #### PDF-пакет Выполните composer require barryvdh/laravel-dompdf. В файл config/app.php добавьте Barryvdh\DomPDF\ServiceProvider::class в массив провайдеров и 'PDF' => Barryvdh\DomPDF\Facade::class в массив псевдонимов. Далее выполните php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider" для генерации файла config/dompdf.php. #### HTML-фильтр Выполните composer require mews/purifier. Добавьте Mews\Purifier\PurifierServiceProvider::class в массив провайдеров файла config/app.php и 'Purifier' => Mews\Purifier\Facades\Purifier::class в массив псевдонимов того же файла. Затем выполните php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider" для создания файла config/purifier.php. Используйте функцию clean() для очистки данных: ``` clean(Input::get('inputname')); Purifier::clean(Input::get('inputname')); ``` #### Разрешение браузера на междоменные запросы Выполните composer require barryvdh/laravel-cors. Добавьте Barryvdh\Cors\ServiceProvider::class в массив провайдеров файла config/app.php. Затем выполните php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider" для создания файла config/cors.php. #### Определение местоположения по IP-адресу Выполните composer require "zhuzhichao/ip-location-zh". Добавьте 'Ip' => 'Zhuzhichao\IpLocationZh\Ip::class в массив псевдонимов файла config/app.php. Используйте Ip::find('171.12.10.156') или Ip::find(Request::getClientIp()) для получения информации об IP-адресе. ## Очередь Laravel Конфигурация находится в файле config/queue.php. Можно выбрать драйвер очереди, например, sync, database, sqs или redis. Если вы используете драйвер database, необходимо выполнить команды php artisan queue:table и php aritsan migrate для создания таблицы. При использовании драйвера redis необходимо настроить раздел redis в файле config/databse.php, а также установить зависимость predis/predis. Команда php artisan make:job SendReminderEmail создаст файл SendReminderEmail.php в папке app/Jobs.