Skip to content

Latest commit

 

History

History
173 lines (116 loc) · 4.12 KB

README.md

File metadata and controls

173 lines (116 loc) · 4.12 KB

Credo

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Integrates Doctrine ORM for the Codeigniter framework.

Install

Install Credo via Composer:

$ composer require rougin/credo

Usage

// 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);

Using Rougin\Credo\EntityRepository

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.

Using Rougin\Credo\CodeigniterModel

// 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();

Change Log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Security

If you discover any security related issues, please email rougingutib@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see LICENSE for more information.