PHP framework: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
* Convention over configuration - do not allow people to change things | * Convention over configuration - do not allow people to change things | ||
* Support whichever version of PHP is in latest Ubuntu LTS, and previous version if latest was released less than 6 months ago | * Support whichever version of PHP is in latest Ubuntu LTS, and previous version if latest was released less than 6 months ago | ||
* Works with <code>strict_types</code> and E_ALL | |||
== Features == | == Features == | ||
Line 24: | Line 25: | ||
* Ship with sensible <code>.gitignore</code> | * Ship with sensible <code>.gitignore</code> | ||
* Installable with <code>composer create-project</code> | * Installable with <code>composer create-project</code> | ||
* Database migrations | |||
* Route model binding | |||
== Simplicity == | |||
To keep the framework as small and simple as possible, it will follow these principles: | |||
* Fixed filesystem layout - no moving controllers to a different directory etc. | |||
== Filesystem layout == | |||
The following directories and files need to exist: | |||
* <code>public/index.php</code>: Front controller | |||
* <code>composer.json</code>: Project metadata and dependencies | |||
[[Category:PHP]] |
Latest revision as of 16:48, 13 March 2021
Introduction
Ideas for a new PHP framework.
Reasons
There are lots of frameworks out there - why create another one?
Selling points of this framework:
- Welcoming community
- No overbearing '(benevolent) dictator for life' - want to move to a group model as soon as possible, either as a separate foundation or under an existing umbrella
- Tutorial documentation as well as API references
- Minimal overhead - mostly a collection of existing modules with a bit of glue to hold them together
- Convention over configuration - do not allow people to change things
- Support whichever version of PHP is in latest Ubuntu LTS, and previous version if latest was released less than 6 months ago
- Works with
strict_types
and E_ALL
Features
Framework should support the following features:
- Front controller with routing
- Templates (Twig)
- Ship with sensible
.gitignore
- Installable with
composer create-project
- Database migrations
- Route model binding
Simplicity
To keep the framework as small and simple as possible, it will follow these principles:
- Fixed filesystem layout - no moving controllers to a different directory etc.
Filesystem layout
The following directories and files need to exist:
public/index.php
: Front controllercomposer.json
: Project metadata and dependencies