iBundle is an "improved" Bundles manager for the Laravel PHP framework. iBundle allows you to install 'i'Bundles and activate them from the Artisan command line interface that we all love. If a new Bundle is installed using iBundle artisan commands, the new bundles will be made to be compatible with iBundle. You will never have to go to your applications/bundles.php
file again.
- Author: Neo Ighodaro
- Website: http://github.com/CreativityKills/iBundle
- Version: 1.1.0
iBundle was written by Neo Ighodaro (CreativityKills, LLC) for the Laravel framework. iBundle is released under the MIT License. See the LICENSE file for details.
Copyright 2012 CreativityKills, LLC
- Added a few configuration file items.
- Depreciated ibundle::initialize in favor of a more understandable ibundle::track
- Rewrote the task classes. Tasks are now called using IoC containers.
- Initial release.
Installing an ibundle simply means iBundle uses Laravel to fetch bundles, then starts tracking it by moving/copying the bundle to the ibundle directory and adding its tracking file to the bundles root directory.
When bundles are tracked it means that its can be worked on by iBundle. It can be activated / deactivated etc. Untracked bundles are not recognized as iBundle bundles and thus cannot be activated by iBundle.
When a bundle is acivated in iBundle, its simply registered. Its the equivalent of adding it to your application/bundles.php
file. When its deactivated, its the equivalent of removing it from your application/bundles.php file
. When iBundles are activated, depending on their auto (load) setting which can be found in the ibundle.json
file, the Bundle could be started. This is the equivalent of adding a bundle to application/bundles.php
with the auto config set to true.
Installing iBundle. You can install iBundle using the Laravel artisan console
$ php artisan bundle:install ibundle
or by downloading the zip from Github and unzipping it in your bundles directory.
After installing the bundle, you can now activate the bundle in your applications/bundles.php
return array(
'ibundle' => array('auto' => true),
);
.
Its a good idea to use iBundle to manage all your bundles, and thus it will be better to remove all the already listed bundles in the application/bundles.php file. Later, we will see how to start tracking bundles that are not being tracked by iBundle.
Installing a bundle with iBundle is simple, all you have to do is run artisan:
$ php artisan ibundle::install bundle_name
...Just as you would install a bundle normally on Laravel. You can optionally add an option
$ php artisan ibundle::install bundle_name true
to activate the Bundle on the fly.
After an iBundle is being tracked by iBundle, you can activate the bundle (activating the bundle means the bundle will be registered with Bundle::register and if the ibundle config is set to auto then it will be started). To activate a bundle on artisan CLI use:
$ php artisan ibundle::activate bundle_name
You can decide to deactivate a bundle altogether thus leaving it unregistered and unseen by Laravel. Any bundle thats not activated WILL not be registered and thus even calling Bundle::start('bundle_name') will not start the bundle. To deactivate a bundle:
$ php artisan ibundle::deactivate bundle_name
Sometimes you want to see the bundles tracked by iBundle whether activated or not, yoyu can do that by:
$ php artisan ibundle::available
You can see the list of activated iBundles by using:
$ php artisan ibundle::activated
Sometimes you have already started using some bundles but you want to track it using iBundle. Then you can:
// You can optionally add a second parameter, this will be set as the "handles" setting
// its useful if you require routes for the bundle to work
$ php artisan ibundle::track bundle_name
That code looks for the bundle in the default bundles directory, and attempts to start tracking it.
To stop tracking a bundle
$ php artisan ibundle::untrack bundle_name
NOTE: If you changed the path of the iBundles directory in the config file then you will have to manually move the bundle back to your bundles folder.
You can add a driver to the iBundle bundle. If you do then please send me a pull request so i can add it to iBundle. A database, redis etc. driver might be nice.