Integrates Doctrine ORM for the Codeigniter framework.
Install Credo via Composer:
$ composer require rougin/credo
// application/models/User.php
/**
* @Entity
* @Table(name="user")
*/
class User extends CI_Model {
/**
* @Id @GeneratedValue
* @Column(name="id", type="integer", length=10, nullable=FALSE, unique=FALSE)
* @var integer
*/
protected $_id;
// ...
}
// application/controllers/Welcome.php
$this->load->model('user');
$this->load->database();
$credo = new Rougin\Credo\Credo($this->db);
$repository = $credo->get_repository('User');
$user = $repository->find(4);
Extend Rougin\Credo\Loader
to MY_Loader
:
// application/core/MY_Loader.php
class MY_Loader extends \Rougin\Credo\Loader {}
Kindly also use the suffix _repository
for creating repositories. (e.g. User_repository
)
// application/repositories/User_repository.php
use Rougin\Credo\EntityRepository;
class User_repository extends EntityRepository {
public function find_by_something()
{
// ...
}
}
Then load the repository using $this->load->repository($repositoryName)
.
// application/controllers/Welcome.php
$this->load->model('user');
$this->load->repository('user');
$this->load->database();
$credo = new Rougin\Credo\Credo($this->db);
$repository = $credo->get_repository('User');
$users = $repository->find_by_something();
For more information about repositories in Doctrine, please check its documentation.
// application/models/User.php
/**
* @Entity
* @Table(name="user")
*/
class User extends \Rougin\Credo\CodeigniterModel {
/**
* @Id @GeneratedValue
* @Column(name="id", type="integer", length=10, nullable=FALSE, unique=FALSE)
* @var integer
*/
protected $_id;
// ...
}
// application/controllers/Welcome.php
$this->load->model('user', '', TRUE);
$users = $this->user->all();
Please see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email rougingutib@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see LICENSE for more information.