UPGRADING.md

August 26, 2024 ยท View on GitHub

The following are the breaking changes introduced in v0.5. As previously mentioned, this was done to improve its maintainability and to conform more on the methods from both the Codeigniter 3 and Eloquent ORM projects:

Change the CodeigniterModel class to Model class

Before

class User extends \Rougin\Wildfire\CodeigniterModel
{
}

After

class User extends \Rougin\Wildfire\Model
{
}

When Wildfire is used as a CI_Model, use WildfireTrait instead.

Before

class User extends \Rougin\Wildfire\Wildfire
{
}

After

class User extends \Rougin\Wildfire\Model
{
    use \Rougin\Wildfire\Traits\WildfireTrait;
}

Change the arguments for PaginateTrait::paginate

Before

// PaginateTrait::paginate($perPage, $config = array())
list($result, $links) = $this->user->paginate(5, $config);

After

$total = $this->db->count_all_results('users');

// PaginateTrait::paginate($perPage, $total, $config = array())
list($offset, $links) = $this->user->paginate(5, $total, $config);

The total count must be passed in the second parameter.

Remove Model::countAll

Before

$total = $this->user->countAll();

After

$total = $this->db->count_all_results('users');

This is being used only in PaginateTrait::paginate.

Change the method ValidateTrait::validation_errors to ValidateTrait::errors

Before

ValidateTrait::validation_errors()

After

ValidateTrait::errors()

Change the property ValidateTrait::validation_rules to ValidateTrait::rules

Before

// application/models/User.php

protected $validation_rules = array();

After

// application/models/User.php

protected $rules = array();

Change the arguments for Wildfire::__construct

Before

$query = $this->db->query('SELECT * FROM users');

// Wildfire::__construct($database = null, $query = null)
$wildfire = new Wildfire($this->db, $query);

After

// $this->db->query returns a CI_DB_result class
$query = $this->db->query('SELECT * FROM users');

// Wildfire::__construct($data)
$wildfire = new Wildfire($query);

If the data is a CI_DB_result, it should be passed on the first parameter.

Change the method Wildfire::asDropdown to Wildfire::dropdown

Before

// Wildfire::asDropdown($description = 'description')
$dropdown = $wildfire->asDropdown();

After

// Wildfire::dropdown($column)
$dropdown = $wildfire->dropdown('description');

Also take note that there is no default value in the argument.

Replace $delimiters with $id in Wildfire::find

Before

$delimiters = array('name' => 'Rougin');

// Wildfire::find($table, $delimiters = array())
$users = $wildfire->find('users', $delimiters);

After

$this->db->where('name', (string) 'Rougin');

$users = $wildfire->get('users')->result();

Use only Wildfire::find to return single row data.

// Wildfire::find($table, $id)
$user = $wildfire->find('users', 1);

Remove set_database and set_query methods

Before

use Rougin\Wildfire\Wildfire;

$wildfire = new Wildfire;

$wildfire->set_database($this->db);

$query = $this->db->query('SELECT * FROM users');

$wildfire->set_query($query);

After

use Rougin\Wildfire\Wildfire;

$wildfire = new Wildfire($this->db);

// or

$query = $this->db->query('SELECT * FROM users');

$wildfire = new Wildfire($query);

The Wildfire parameter must be defined with either CI_DB_query_builder ($this->db) or CB_DB_result instances.