Awesome
Spark Plug
A special package that returns an application based on Codeigniter 3 as a single variable. Might be useful when testing a Codeigniter 3
project to frameworks such as PHPUnit.
Installation
Install Spark Plug
through Composer:
$ composer require rougin/spark-plug
Basic Usage
Using the Instance
helper
$ci = Rougin\SparkPlug\Instance::create();
// You can now use the CI_Controller instance
$ci->load->helper('inflector');
[!NOTE] Instead of
CI_Controller
, it returnsRougin\SparkPlug\Controller
for type-hinting its helpers and libraries.
Using the SparkPlug
class
use Rougin\SparkPlug\SparkPlug;
$sparkplug = new SparkPlug($GLOBALS, $_SERVER);
$ci = $sparkplug->instance();
// The Inflector helper is now loaded ---
$ci->load->helper('inflector');
// --------------------------------------
Modify constants to be defined
use Rougin\SparkPlug\SparkPlug;
$sparkplug = new SparkPlug($GLOBALS, $_SERVER);
// Set the value of the APPPATH constant ---
$sparkplug->set('APPPATH', '/path/to/app');
// -----------------------------------------
$ci = $sparkplug->instance();
Available constants that can be modified:
APPPATH
VENDOR
VIEWPATH
[!NOTE] If setting a new
APPPATH
value, the value ofVIEWPATH
will be set toAPPPATH/views
.
Mock CI_Controller
for unit testing
use Rougin\SparkPlug\Instance;
class SampleTest extends \PHPUnit_Framework_TestCase
{
public function testCodeigniterInstance()
{
// Directory path to the test application
$application = __DIR__ . '/TestApp';
// Instance::create($path, $_SERVER, $GLOBALS)
$ci = Instance::create($application);
$this->assertInstanceOf('CI_Controller', $ci);
}
}
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Credits
License
The MIT License (MIT). Please see LICENSE for more information.