chubbyphp / petstore
A simple skeleton to build api's based on the chubbyphp-framework.
Requires
- php: ^8.2
- chubbyphp/chubbyphp-clean-directories: ^1.4
- chubbyphp/chubbyphp-cors: ^1.6
- chubbyphp/chubbyphp-decode-encode: ^1.2
- chubbyphp/chubbyphp-framework: ^5.2
- chubbyphp/chubbyphp-framework-router-fastroute: ^2.2
- chubbyphp/chubbyphp-http-exception: ^1.2
- chubbyphp/chubbyphp-laminas-config: ^1.4
- chubbyphp/chubbyphp-laminas-config-doctrine: ^2.3
- chubbyphp/chubbyphp-laminas-config-factory: ^1.4
- chubbyphp/chubbyphp-negotiation: ^2.2
- chubbyphp/chubbyphp-parsing: ^1.3
- doctrine/orm: ^2.20
- monolog/monolog: ^3.8.1
- ramsey/uuid: ^4.7.6
- slim/psr7: ^1.7
- symfony/console: ^7.2.1
Requires (Dev)
- chubbyphp/chubbyphp-dev-helper: dev-master
- chubbyphp/chubbyphp-mock: ^1.8
- infection/infection: ^0.29.8
- php-coveralls/php-coveralls: ^2.7
- phpstan/extension-installer: ^1.4.3
- phpstan/phpstan: ^2.0.3
- phpunit/phpunit: ^11.5.1
This package is auto-updated.
Last update: 2024-12-16 18:56:43 UTC
README
Description
A simple skeleton to build api's based on the chubbyphp-framework.
Requirements
- php: ^8.2
- chubbyphp/chubbyphp-clean-directories: ^1.4
- chubbyphp/chubbyphp-cors: ^1.6
- chubbyphp/chubbyphp-decode-encode: ^1.2
- chubbyphp/chubbyphp-framework: ^5.2
- chubbyphp/chubbyphp-framework-router-fastroute: ^2.2
- chubbyphp/chubbyphp-http-exception: ^1.2
- chubbyphp/chubbyphp-laminas-config: ^1.4
- chubbyphp/chubbyphp-laminas-config-doctrine: ^2.3
- chubbyphp/chubbyphp-laminas-config-factory: ^1.4
- chubbyphp/chubbyphp-negotiation: ^2.2
- chubbyphp/chubbyphp-parsing: ^1.3
- doctrine/orm: ^2.20
- monolog/monolog: ^3.8.1
- ramsey/uuid: ^4.7.6
- slim/psr7: ^1.7
- symfony/console: ^7.2.1
Environment
Add the following environment variable to your system, for example within ~/.bash_aliases
:
export USER_ID=$(id -u) export GROUP_ID=$(id -g)
Docker
docker-compose up -d
docker-compose exec php bash
Setup
composer install composer setup:dev
Urls
Pet
- GET https://localhost/api/pets?sort[name]=asc
- POST https://localhost/api/pets
- GET https://localhost/api/pets/8ba9661b-ba7f-436b-bd25-c0606f911f7d
- PUT https://localhost/api/pets/8ba9661b-ba7f-436b-bd25-c0606f911f7d
- DELETE https://localhost/api/pets/8ba9661b-ba7f-436b-bd25-c0606f911f7d
DBs
- jdbc:postgresql://localhost:5432/petstore?user=root&password=root
Structure
Collection
Collections are sortable, filterable paginated lists of models.
Dto
A DTO, or Data Transfer Object, is a simple object used to transport data between software application components.
Middleware
Middleware functions can execute code, make changes to the request and response objects. Middleware can generally be added globally or on a per-route basis.
Model
Models, entities, documents what ever fits your purpose the best.
ORM
ORM Mapping definitions.
Parsing
Parses and validates data against predefined schemas, ensuring that incoming data conforms to expected structures and criteria.
Repository
Repositories get data from storages like databases, elasticsearch, redis or whereever your models are stored or cached.
RequestHandler
RequestHandler alias Controller, or Controller actions to be more precise. There is a directory with generic crud controllers. If you like the idea adapt them for your generic use case, if not drop them. I highly recommend to not extend them.
ServiceFactory
Service factories are the glue code of the dependeny injection container.
Copyright
2024 Dominik Zogg