PHP framework: Difference between revisions

From Rixort Wiki
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 14: Line 14:
* Minimal overhead - mostly a collection of existing modules with a bit of glue to hold them together
* 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
* 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 <code>strict_types</code> and E_ALL
== Features ==
Framework should support the following features:
* Front controller with routing
* Templates (Twig)
* Ship with sensible <code>.gitignore</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 controller
  • composer.json: Project metadata and dependencies