limoncello-php / app
Installs: 318
Dependents: 0
Suggesters: 0
Security: 0
Stars: 83
Watchers: 6
Forks: 7
Open Issues: 31
Requires
- php: >=7.1.0
- limoncello-php/framework: ^0.9.1
- twig/extensions: ^1.5
- vlucas/phpdotenv: ^2.3
Requires (Dev)
- doctrine/dbal: ^2.5.0
- filp/whoops: ^2.1
- fzaninotto/faker: ^1.7
- limoncello-php/testing: ^0.9.1
- mockery/mockery: ^1.0
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^2.9
README
Summary
Limoncello App is a fully featured OAuth 2.0 JSON API quick start application.
Out-of-the-box it has
- JSON API CRUD operations (create, read, update and delete) for a few sample resources with
to-one
,to-many
andmany-to-many
relationship types. - Support for such JSON API features as resource inclusion, sparse field sets, sorting, filtering and pagination.
- Database migrations and seedings.
- OAuth 2.0 server authentication and role authorization.
- Admin panel for managing users and roles.
- Cross-Origin Resource Sharing (CORS).
- JSON API errors.
- API tests.
- Web tests.
Supported features
- Multiple nested paths resource inclusion (e.g.
posts,posts.user,posts.comments.user
). - Filtering and sorting by multiple attributes in resources and its relationships.
- Supported operators
=
,eq
,equals
,!=
,neq
,not-equals
,<
,lt
,less-than
,<=
,lte
,less-or-equals
,>
,gt
,greater-than
,>=
,gte
,greater-or-equals
,like
,not-like
,in
,not-in
,is-null
,not-null
. - Pagination works for main resources and resources in relationships. Limits for maximum number of resources are configurable.
Based on
- Zend Diactoros
- Doctrine
- Pimple
- Monolog
- FastRoute
- Twig
- JSON API implementation
- Cross-Origin Resource Sharing
- Built with ❤️ Limoncello
It could be a great start if you are planning to develop JSON API.
Feel free to ask questions and thank you for supporting the project with ⭐.
Installation
1 Create project
$ composer create-project --prefer-dist limoncello-php/app app_name
$ cd app_name
Recommended additional step
$ npm install
or
$ yarn install
2 Run server
Application runs PHP built-in server on port 8080
$ composer serve
Recommended
$ npm serve
or
$ yarn serve
Port could be configured in
composer.json
orclient/webpack/base.config.js
If you use Postman
here is a collection of API requests that would work with a local server (reading users, filter users, create users, and etc).
Here is a Postman
screen-shot with the collection opened
3 Turn on production mode (optional)
By default the application is installed in development mode (less performance, tests and development libraries are available). Application could be switched into production mode (higher performance, no tests, no development libraries) with command
$ composer build
Performance comparision with other frameworks could be found here and here.
Testing
$ composer test
How-to add Google Auth to the Application
You can find detailed instructions here.