sunrise-php / Awesome Skeleton
🎉 Release 3.0 is released! Awesome Skeleton for modern development on PHP 7.4+ (incl. PHP 8). Contains quality tested packages, thoughtful structure and everything you need to develop microservices.
Stars: ✭ 83
Projects that are alternatives of or similar to Awesome Skeleton
Http Router
🎉 Release 2.0 is released! Very fast HTTP router for PHP 7.1+ (incl. PHP8 with attributes) based on PSR-7 and PSR-15 with support for annotations and OpenApi (Swagger)
Stars: ✭ 124 (+49.4%)
Mutual labels: openapi, annotations
Express Typescript Boilerplate
A delightful way to building a RESTful API with NodeJs & TypeScript by @w3tecch
Stars: ✭ 2,293 (+2662.65%)
Mutual labels: annotations, skeleton
spectree
API spec validator and OpenAPI document generator for Python web frameworks.
Stars: ✭ 190 (+128.92%)
Mutual labels: annotations, openapi
Dredd Example
Example application using Dredd and CI
Stars: ✭ 79 (-4.82%)
Mutual labels: openapi, skeleton
Swag
Automatically generate RESTful API documentation with Swagger 2.0 for Go.
Stars: ✭ 5,173 (+6132.53%)
Mutual labels: openapi, annotations
Amcparser
Parse and visualize asf/amc files from CMU MoCap dataset.
Stars: ✭ 70 (-15.66%)
Mutual labels: skeleton
Openapivalidators
Use Jest or Chai to assert that HTTP responses satisfy an OpenAPI spec
Stars: ✭ 77 (-7.23%)
Mutual labels: openapi
Openapi Viewer
Browse and test a REST API described with the OpenAPI 3.0 Specification
Stars: ✭ 82 (-1.2%)
Mutual labels: openapi
Wsdl Creator
PHP WSDL Creator using PHPdoc (annotations, reflections).
Stars: ✭ 79 (-4.82%)
Mutual labels: annotations
Skeleton
A ready-to-use CodeIgniter skeleton with tons of new features and a whole new concept of hooks (actions and filters) as well as a ready-to-use and application-free themes and plugins system. Facebook Page: http://bit.ly/2oHzpxC | Facebook Group: http://bit.ly/2o3KOrA. Help me carry on making more free stuff → http://bit.ly/2ppNujE ←
Stars: ✭ 74 (-10.84%)
Mutual labels: skeleton
Sanic Nginx Docker Example
Sanic + Nginx + Docker basic example
Stars: ✭ 77 (-7.23%)
Mutual labels: skeleton
Textannotationgraphs
A modular annotation system that supports complex, interactive annotation graphs embedded on top of sequences of text.
Stars: ✭ 73 (-12.05%)
Mutual labels: annotations
Openapi Mock Generator
Progressive Web App for generating mocked data from an OpenAPI specification
Stars: ✭ 72 (-13.25%)
Mutual labels: openapi
Awesome Skeleton for modern development on PHP 7.4+ (incl. PHP 8)
Contains quality tested packages, thoughtful structure and everything you need to develop microservices.
Installation
composer create-project 'sunrise/awesome-skeleton:^3.0' app
Cooking
Set up your database connection:
cp .env.example .env && nano .env
Execute a migration:
php bin/app migrations:migrate --service 'master' --no-interaction
Run CLI
incl.: Doctrine DBAL, Doctrine ORM, Doctrine Migrations.
php bin/app
Run via PHP
listen 0.0.0.0:3000
composer serve
Run via RoadRunner
listen 0.0.0.0:3000
Set up your server:
cp .rr.yml.example .rr.yml && nano .rr.yml
Run the server:
rr -dv serve
Run via Swoole
Coming soon...
Run tests
composer test
Run benchmarks
composer bench
Run routes through cURL
you may need to change the server address...
Home (index)
curl -X 'GET' 'http://127.0.0.1:3000/'
OpenAPI document
curl -X 'GET' 'http://127.0.0.1:3000/openapi'
Create an entry (example bundle)
curl -X 'POST' -H 'Content-Type: application/json' -d '{"name": "foo", "slug": "foo"}' 'http://127.0.0.1:3000/api/v1/entry'
Update an existing entry (example bundle)
you need to set an existing ID.
curl -X 'PATCH' -H 'Content-Type: application/json' -d '{"name": "foo", "slug": "foo"}' 'http://127.0.0.1:3000/api/v1/entry/b06fd41d-d131-4bb9-a472-eb583369437c'
Delete an existing entry (example bundle)
you need to set an existing ID.
curl -X 'DELETE' 'http://127.0.0.1:3000/api/v1/entry/b06fd41d-d131-4bb9-a472-eb583369437c'
Read an existing entry (example bundle)
you need to set an existing ID.
curl -X 'GET' 'http://127.0.0.1:3000/api/v1/entry/b06fd41d-d131-4bb9-a472-eb583369437c'
List of entries (example bundle)
curl -X 'GET' 'http://127.0.0.1:3000/api/v1/entry'
Useful commands
Deploy
bash bin/deploy
Down
bash bin/down 'Reason...'
Up
bash bin/up
Generate Systemd unit for RoadRunner
php bin/app app:roadrunner:generate-systemd-unit > app.service
Generate OpenApi document
php bin/app app:openapi:generate-document > openapi.json
Used stack
see composer.json
- https://github.com/PHP-DI/PHP-DI
- https://github.com/Seldaek/monolog
- https://github.com/sunrise-php/http-router
- https://github.com/doctrine/orm
- https://github.com/doctrine/migrations
- https://github.com/symfony/console
- https://github.com/symfony/validator
- https://github.com/justinrainbow/json-schema
Used technology
RoadRunner
OpenApi (Swagger) specification
- https://swagger.io/docs/specification/about/
- https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md
Json Schema specification
It may be useful to you
Awesome middlewares for your application
with ❤️ for you
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].