khazhinov / laravel-api-skeleton
Project skeleton Laravel for API development.
Installs: 41
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.2
- khazhinov/laravel-lighty: ^11.0
- laravel/framework: ^10.0
- laravel/octane: ^2.0
- laravel/sanctum: ^3.2
- laravel/telescope: ^4.14
- laravel/tinker: ^2.8
- nyholm/psr7: ^1.5
- spatie/data-transfer-object: ^3.8
- spiral/roadrunner: v2023.3.9
- spiral/roadrunner-cli: ^2.6.0
- spiral/roadrunner-http: ^3.3.0
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.13
- fakerphp/faker: ^1.9.1
- friendsofphp/php-cs-fixer: ^3.11
- fruitcake/laravel-telescope-toolbar: ^1.3
- laravel-lang/attributes: ^2.0
- laravel-lang/lang: ^12.1
- laravel-lang/publisher: ^14.3
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^7.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-symfony: ^1.2
- phpunit/phpunit: ^10.0
- predis/predis: ^2.2
- roave/security-advisories: dev-latest
- spatie/laravel-ignition: ^2.0
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