Stars: 248
Forks: 35
Pull Requests: 38
Issues: 56
Watchers: 46
Last Updated: 2020-07-17 16:57:25
High performance data-mapper ORM with optional active-record traits for RAD and modern PHP 7.2+
License: MIT License
Languages: Makefile, PHP, Batchfile, XSLT, HTML, Shell, Gherkin
Propel3 is an open-source Object-Relational Mapping (ORM) for modern PHP 7.1+.
Version 3 of Propel ORM replaces Propel2, which is not maintained anymore. Propel3 introduces a data-mapper implementation which separates your entities from the actual persisting logic.
This is in current development and is not yet ready to use.
<database name="default">
<entity name="Vendor\Car">
<field name="id" primaryKey="true" autoIncrement="true" type="INTEGER" />
<field name="name" type="VARCHAR" required="true" />
<relation target="Publisher" onDelete="setnull"/>
<relation target="Author" onDelete="setnull" onUpdate="cascade"/>
</entity>
</database>
In work.
namespace Vendor
use Propel\Annotations\Entity;
use Propel\Annotations\Field;
use Propel\Annotations\PrimaryKey;
/**
* @Entity()
*/
class Car
{
/**
* @PrimaryKey(auto_increment=true)
*/
private $id;
/**
* @Field(type="VARCHAR")
*/
private $name;
// getters/setters
}
$propel = new Propel\Runtime\Configuration('path/to/propel.yml');
// require a session for each request/workload
$session = $propel->getSession();
$car = new Vendor\Car();
$car->setName('Ford');
$session->persist($car);
$session->commit();
// use <entity name="Vendor\Car" activeRecord="true">
$car = new Vendor\Car();
$car->setName('Ford');
$car->save();
Read the Propel documentation. This documentation is for Propel2 still.
Everybody can contribute to Propel. Just fork it, and send Pull Requests. You have to follow PSR2 coding standards and provides unit tests as much as possible.
Please see our contribution guideline. Thank you!
See the LICENSE
file.