original soure : https://philsturgeon.uk/blog/2012/05/composer-with-codeigniter/
Composer is the best thing for PHP since sliced arrays and using it in your applications means you have easy access to a large
selection of well written PHP packages that plug and play with any
framework that supports PSR-0 namespacing. This is BRILLIANT as it means
less reliability on the framework and framework-specific code, and
helps you get towards the goal of portable code where the framework is
essentially just the wrapper. FuelPHP 1.x works with an optional
autoloader and 2.0 will support Composer packages out of the box as does
Symfony2 and I hear Drupal are working it in too. This interoperability
is brilliant, but how do you use it with CodeIgniter?
People have suggested that CodeIgniter 3.0
should be rewritten entirely around Composer and we make it PHP 5.3
only, but rewriting is a silly suggestion and PHP 5.3 still only has
about 30% coverage on servers so that is not going to happen. Besides if
CodeIgniter 3.0 became PHP 5.3 over night then either it would break
everyone’s application because it changed so much, or change so little
that it would not merit a PHP version bump.
That said, if you want to start using Composer components in your
application there is no reason why you should not. The code is mainly
PHP 5.3 but by slowing moving the majority of your application from
framework specific code to generic packages that work in any framework
you free yourself from being limited to a specific framework and will
find a transition to FuelPHP 2.0, Laravel or Symfony2 much easier in the
Sadly Laravel have not announced any plans to exclusively support Composer out of the box, but it is just as easy to work with Composer in Laravel as it is in CodeIgniter, so let’s get going:
Navigate to your project and install composer:
$ cd /path/to/my/project
$ curl -s http://getcomposer.org/installer | php
You could instead use Homebrew to install composer system-wide, which is my preference:
__Update: __ It turns out the homebrew package is pretty old. I
installed a few weeks previous to this post, but users are having
problems. Use the .phar method for now.
$ brew install composer
Next you need to make a composer.json in the root of your project (not the application folder):
This will add a requirement for the Buzz package, which is a handy HTTP Request / Response PHP 5.3.x class.
To actually install these files to your CodeIgniter project you simply run the install command:
$ composer.phar install
If you have installed via Homebrew then this will be:
$ composer install
Then you should notice composer creating a ./vendors folder in your application and code will be installed there.
To autoload this newly installed code all you need to do is drop a single line of PHP into your index.php
It is as simple as that. Now in my test controller I can use Buzz
happily, along with any other PSR-0 code that I install via Composer:
class Test extends CI_Controller
public function index()
$browser = new BuzzBrowser();
$response = $browser->get('http://www.google.com');
To see what is available check out Packagist – the default repo for Composer packages.
If you are not familiar with Composer or PSR-0 support then you should really look into it. The PHP Standards group or PHP-FIG are doing a brilliant job of taming the mess that is third-party PHP code and are building some great standards, which are open to discussion and voted on by some of the best PHP developers around.
Get involved and help PSR-1 and PSR-2 become something brilliant. In
the mean-time enjoy all the PSR-0 code and use it wherever the hell you
Stop making CodeIgniter libraries, Laravel bundles and Zend modules, make Composer packages.