wwtg99 / flight2wwu
PHP framework depends on Flight
Requires
- php: >=5.6
- catfan/medoo: ~1.0
- desarrolla2/cache: ~2.0
- erusev/parsedown: ~1.6
- gregwar/captcha: 1.*
- maximebf/debugbar: 1.*
- mikecao/flight: ~1.2
- monolog/monolog: ~1.0
- nesbot/carbon: ~1.21
- predis/predis: ~1.0
- symfony/css-selector: ~3.0
- symfony/dom-crawler: ~3.0
- symfony/process: ~3.0
- symfony/translation: ~3.0
- twig/twig: ~1.0
- wwtg99/config: *
- wwtg99/data_pool: *
- wwtg99/pgauth: *
- wwtg99/structure-files: *
Requires (Dev)
- guzzlehttp/guzzle: ~6.0
- phpunit/phpunit: ~5.4
- swiftmailer/swiftmailer: ~5.4
This package is not auto-updated.
Last update: 2024-11-09 19:38:59 UTC
README
Installation
Use composer to install
composer require wwtg99/flight2wwu
Or, add require in composer.json "wwtg99/flight2wwu": "*"
Use command tool wwtinit (vendor/bin) to initialize project
vendor/bin/wwtinit <project_dir>
Config Apache
Set web directory to web and set AllowOverride to All.
Config Nginx
Add in server
location / {
try_files $uri $uri/ /index.php;
}
Config framework
Change conf files in App/config. At most time only change app_config.php.
Directories
- App: application directory
- config: config files
- lang: translation files
- Controller: controller class
- Model: model class
- view: view templates
- Plugin: plugin class
- config: config files
- bootstrap: bootstrap scripts
- storage: storage directory, write access
- log: default log directory
- tmp: default tmp directory (ex. config cache file)
- web: web document root
Controllers
BaseController
The super class for all controllers.
RestfulController
The super class for all Restful controllers. Subclass must implement 7 functions.
- index: URI /resources Method Get, list all resources
- show: URI /resources/{id} Method Get, get one resource by id
- create: URI /resources/create Method Get, view to create resource, used for restful+
- store: URI /resources Method Post, create resource
- edit: URI /resources/{id}/edit Method Get, view to update resource, used for restful+
- update: URI /resource/{id} Method Put/Patch, update resource, Put to update all data (null for data not provided), Patch to update provided data
- destroy: URI /resource/{id} Method Delete, delete resource
RestfulAPIController
The best super class for restful APIs. Implement all functions in RestfulController (disable create and edit), and provided 5 functions to handle resources:
- listResources: list resources
- getResource: get one resource
- createResource: create resource
- updateResource: update resource
- deleteResource: delete resource
And 3 attributes:
- filterFields: fields to filter
- createFields: fields for creation
- updateFields: fields for update
RestfulPlusController
The best super class for restful view controllers. Implement all functions in RestfulController, all functions will return by view.
RestFul APIs Definition
Resource URI,represent one resource, example: http://example.com/resources/
If have errors, error message will be provided as {"error": "message", "code": 1} .
URIs and Methods(zoos as example):
Paging、Order and Filters
Get resource list support paging, order and filters.
Paging:
Method one:
page: page number page_size: number per page, optional, default 100 Example: ?page=1&page_size=100
Method two:
limit: number limitation offset:number offset, optional, default 0 Example: ?limit=100&offset=10
Order:
Use sort parameter, >field to sort by field ascending, <field to sort by field descending, use comma (,) to separate fields, Example: ?sort=>name,<age
Filters:
Use expression to filter, supported expression: =, >=, <=, !=。 Example:?name=Tom ?age>=10 ?name!=Tim
Selected fields
Get resource list and get one resource support select fields. Use fields parameters, comma (,) to separate. Example: ?fields=name,age,dob,pob If fields is count, then show number of data.
Return HTTP code
- GET return
200
。 - POST create resource successfully returning
201
, create resource failed returning200
and error message, server error returning500
. - PUT/PATCH update resource successfully returning
201
, update resource failed returning200
and error message, server error returning500
。 - DELETE delete resource successfully returning
204
, delete resource failed returning200
and error message, server error returning500
。