Propel is a free, open-source (
MIT)
object–relational mapping
Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between type systems using object-oriented programming languages. This creates, in effect, a "virtual object datab ...
toolkit written in
PHP
PHP is a General-purpose programming language, 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 implementati ...
. It is also an integral part of the PHP framework
Symfony and was the default ORM up to, and including version 1.2.
History
The Propel project was started in August 2003, with the availability of beta versions PHP version 5. With version 5, PHP was finally able to provide a level of support for
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
that both made projects like Propel possible and also created a demand for these hitherto-missing components of large-scale, object-oriented architectures. Propel was originally based on the
Apache Torque project, which was a
Java language ORM project.
Features
Propel's primary function is to provide a mapping between PHP classes and database tables. To accomplish this Propel includes a ''generator'' component which uses
source code generation to build PHP classes based on a datamodel definition written in
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
. Propel also includes a ''runtime'' component which manages connections, transactions, and any idiosyncratic rules that describe the workings of the
RDBMS
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
being used with Propel.
See also
{{Portal, Free and open-source software
*
List of object–relational mapping software
This is a list of well-known object–relational mapping software. It is not up-to-date or all-inclusive.
Java
*Apache Cayenne, open-source for Java
*Apache OpenJPA, open-source for Java
* DataNucleus, open-source JDO and JPA implementation (forme ...
*
Doctrine (PHP)
*
Symfony, a
web application framework
*
Skipper, a visualization tool for Propel
References
External links
Propel Home Page
Free software programmed in PHP
PHP libraries
Object-relational mapping