PHP framework

From Rixort Wiki
Jump to navigation Jump to search

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