khazhinov / laravel-api-skeleton
Project skeleton Laravel for API development.
Installs: 51
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ^8.3
- khazhinov/laravel-lighty: ^11.1
- laravel/framework: ^11.9
- laravel/horizon: ^5.29
- laravel/octane: ^2.5
- laravel/sanctum: ^4.0
- laravel/telescope: ^5.2
- laravel/tinker: ^2.9
- spatie/data-transfer-object: ^3.8
- spiral/roadrunner: v2024.2.1
- spiral/roadrunner-cli: ^2.6.0
- spiral/roadrunner-http: ^3.5.1
Requires (Dev)
- barryvdh/laravel-ide-helper: ^3.2
- fakerphp/faker: ^1.23
- friendsofphp/php-cs-fixer: ^3.64
- laravel/pail: ^1.1
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.1
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^11.0.1
- predis/predis: ^2.2
- roave/security-advisories: dev-latest
README
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