Skip to content

A simple skeleton to build api's based on the chubbyphp-framework, mezzio (former zend-expressive) or slim.

License

Notifications You must be signed in to change notification settings

chubbyphp/petstore

Repository files navigation

petstore

CI Coverage Status Mutation testing badge

Description

A simple skeleton to build api's based on the chubbyphp-framework.

Requirements

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

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

About

A simple skeleton to build api's based on the chubbyphp-framework, mezzio (former zend-expressive) or slim.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published