khazhinov/laravel-api-skeleton

Project skeleton Laravel for API development.


README

Social Card of Laravel API Skeleton

Laravel API Skeleton ☠️

Скелет Laravel проекта для разработки API

Создание приложения

Для создания приложения с нуля запускай следующую команду:

$ composer create-project khazhinov/laravel-api-skeleton my-awesome-project

Затем после установки всех зависимостей перейдём в папку с созданным проектом:

$ cd ./my-awesome-project

Обязательно выполни:

$ git init

После этого запустим необходимое для работы окружение:

$ docker-compose up -d

Подождём пару минут, пока инициализируется база данных. Обязательно дождитесь, чтобы контейнер PostgreSQL выдал в свои логи что-то вроде:

2022-09-25 11:45:22.790 UTC [1] LOG:  database system is ready to accept connections

Затем выполним инициализацию базы данных:

$ php artisan migrate --seed

Осталось совсем чуть-чуть, чтобы увидеть магию 🌃

Теперь запускаем веб-сервер:

$ php artisan serve

И теперь переходим по ссылке!

Документация была получена исходя из волшебной обработки классов внутри кода. Взгляни на контроллер: App\Http\Controllers\Api\V1_0\ExampleEntity\ExampleEntityCRUDController

Для генерации новых сущностей просто используй:

$ php artisan lighty:generator AnotherEntity v1.0 --migration

Управление контейнером с PHP

В данном варианте реализации предполагается использование Roadrunner. Примеры контейнеров, описанные в dockerfile и docker-compose могут применяться для первичного запуска окружения. Всё, что требуется для запуска приложение - это Docker. Просто попробуй!

Сборка контейнера осуществляется с помощью:

$ docker-compose -f docker-compose-containerized.yaml build

Запуск требуемого окружения осуществляется с помощью:

$ docker-compose -f docker-compose-containerized.yaml up -d

Миграции выполняются автоматически при запуске любого контейнера, а seed нужно сделать руками один раз

$ docker-compose -f docker-compose-containerized.yaml exec -T api php artisan db:seed

Для остановки используй:

$ docker-compose -f docker-compose-containerized.yaml down

А это пример запуска команды внутри контейнера, когда в твоём локальном окружении сейчас нет PHP:

$ docker-compose -f docker-compose-containerized.yaml exec -T api php artisan migrate:refresh --seed