FuelPHP
   HOME

TheInfoList



OR:

FuelPHP is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
web application framework written in
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
which implements the HMVC pattern.


History

The FuelPHP project commenced in October 2010, with its major contributors bein
Harro VertonJelmer SchreuderDan HorriganPhilip Sturgeon
an
Frank de Jonge
In November 2013, Steve West joined the development team. Philip Sturgeon and Dan Horrigan had contributed to the
CodeIgniter CodeIgniter is an open-source software rapid development web framework, for use in building dynamic web sites with PHP. Popularity CodeIgniter is loosely based on the popular model–view–controller (MVC) development pattern. While controller c ...
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
. The first version of FuelPHP (FuelPHP 1.0) was developed under the
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
repository name
Fuel
Another GitHub repository name
FuelPHP
was created for the development of the second version (FuelPHP 2.0).


Major releases


Project guidelines

The project guidelines are: * Building a
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
based on the best ideas from other frameworks. * The framework must provide powerful functionalities, it must be easy to work with and it should have a lightweight codebase. * Taking account of community developers' orientations.


Architecture overview

* FuelPHP is written in
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
5.3 and requires at least 5.3.3 for V1.x. * Cascading File System (inspired b
Kohana
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
): a directory structure partially based on
namespaces In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified. Namespaces ...
used by classes. * Flexibility: almost every component of the core framework can be extended or replaced. *
Modularity Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a sy ...
: applications can be divided up into modules. *
Extensibility Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be th ...
: additional functionalities can be added to the framework throug
packages


Features overview

* A URL routing system * RESTful implementation * HMVC implementation *
Template Template may refer to: Tools * Die (manufacturing), used to cut or shape material * Mold, in a molding process * Stencil, a pattern or overlay used in graphic arts (drawing, painting, etc.) and sewing to replicate letters, shapes or designs Co ...
parsing Parsing, syntax analysis, or syntactic analysis is the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from Lati ...
: Stags (a specific FuelPHP template engine) and Mustache template engines are included; drivers for Markdown, Smarty,
Twig A twig is a thin, often short, branch of a tree or bush. The buds on the twig are an important diagnostic characteristic, as are the abscission scars where the leaves have fallen away. The color, texture, and patterning of the twig bark are ...
, Haml
Jade
an
Dwoo
template engines * Form and data validation features * An
Object Relational Mapper Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Abstract object, Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matt ...
(ORM) * Vulnerability protections: the framework encodes output, provides CSRF protection, cross-site scripting protection, input filtering features, and prevents SQL injection * Th
Auth package
provides a set of components with which authentication and authorization application functionalities can be built
Sentry
is another authentication and authorisation package for FuelPHP. * A
caching In computing, a cache ( ) is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewher ...
system


Tools

* Profiling and
debugging In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve in ...

PHP Quick Profiler
integration *
Database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
migrations tool (inspired by the popular
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web p ...
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
) * Scaffolding (inspired by
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web p ...
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...

Oil package
* Tasks (operations that can be executed through the command line) * Testing: PHPUnit integration
Oil package


Roadmap

For the new version (V2) currently under development, some very significant changes are planned: * It will be fully installable using
Composer A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music. Etymology and Defi ...
* It will require
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
5.4+ * The framework core will be split up in different
Composer A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music. Etymology and Defi ...
packages, most framework independent * Fuel applications will be independent packages as well,
Composer A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music. Etymology and Defi ...
installable * The framework will support multiple applications in a single installation * "Oil" will become a separate application, with command line,
terminal Terminal may refer to: Computing Hardware * Terminal (electronics), a device for joining electrical circuits together * Terminal (telecommunication), a device communicating over a line * Computer terminal, a set of primary input and output devic ...
and
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
support * "Oil" will contain a generic admin backend for your applications * Complete platform independent DBAL, including a schema manager * Completely unit tested, with 100% code coverage * Fully object oriented, no static code in the core anymore Some of the features of the V1 release will be made available as separate V2 packages, for others a compatibility package will be created. It will minimise the impact when an existing application has to be migrated.


References


External links

*
FuelPHP DocumentationFuelPHP BlogFuelPHP ForumFuelPHP V1 source codeFuelPHP V2 source code
{{Application frameworks PHP software PHP frameworks Web frameworks Software using the MIT license Free software programmed in PHP