Commit f58b9dea authored by Dayle Rees's avatar Dayle Rees

allow for overriding core tasks

Signed-off-by: 's avatarDayle Rees <thepunkfan@gmail.com>
parent 34919aff
......@@ -6,36 +6,46 @@
* of the migration resolver and database classes, which are used
* to perform various support functions for the migrator.
*/
IoC::register('task: migrate', function()
if(! IoC::registered('task: migrate'))
{
IoC::register('task: migrate', function()
{
$database = new Tasks\Migrate\Database;
$resolver = new Tasks\Migrate\Resolver($database);
return new Tasks\Migrate\Migrator($resolver, $database);
});
});
}
/**
* The bundle task is responsible for the installation of bundles
* and their dependencies. It utilizes the bundles API to get the
* meta-data for the available bundles.
*/
IoC::register('task: bundle', function()
if(! IoC::registered('task: bundle'))
{
IoC::register('task: bundle', function()
{
$repository = IoC::resolve('bundle.repository');
return new Tasks\Bundle\Bundler($repository);
});
});
}
/**
* The key task is responsible for generating a secure, random
* key for use by the application when encrypting strings or
* setting the hash values on cookie signatures.
*/
IoC::singleton('task: key', function()
if(! IoC::registered('task: key'))
{
IoC::singleton('task: key', function()
{
return new Tasks\Key;
});
});
}
/**
* The session task is responsible for performing tasks related
......@@ -43,50 +53,65 @@ IoC::singleton('task: key', function()
* such as generating the session table or clearing expired
* sessions from storage.
*/
IoC::singleton('task: session', function()
if(! IoC::registered('task: session'))
{
IoC::singleton('task: session', function()
{
return new Tasks\Session\Manager;
});
});
}
/**
* The route task is responsible for calling routes within the
* application and dumping the result. This allows for simple
* testing of APIs and JSON based applications.
*/
IoC::singleton('task: route', function()
if(! IoC::registered('task: route'))
{
IoC::singleton('task: route', function()
{
return new Tasks\Route;
});
});
}
/**
* The "test" task is responsible for running the unit tests for
* the application, bundles, and the core framework itself.
* It provides a nice wrapper around PHPUnit.
*/
IoC::singleton('task: test', function()
if(! IoC::registered('task: test'))
{
IoC::singleton('task: test', function()
{
return new Tasks\Test\Runner;
});
});
}
/**
* The bundle repository is responsible for communicating with
* the Laravel bundle sources to get information regarding any
* bundles that are requested for installation.
*/
IoC::singleton('bundle.repository', function()
if(! IoC::registered('bundle.repository'))
{
IoC::singleton('bundle.repository', function()
{
return new Tasks\Bundle\Repository;
});
});
}
/**
* The bundle publisher is responsible for publishing bundle
* assets to their correct directories within the install,
* such as the web accessible directory.
*/
IoC::singleton('bundle.publisher', function()
if(! IoC::registered('bundle.publisher'))
{
IoC::singleton('bundle.publisher', function()
{
return new Tasks\Bundle\Publisher;
});
});
}
/**
* The Github bundle provider installs bundles that live on
......@@ -94,7 +119,10 @@ IoC::singleton('bundle.publisher', function()
* and will update the submodule so that the bundle is
* installed into the bundle directory.
*/
IoC::singleton('bundle.provider: github', function()
if(! IoC::registered('bundle.provider: github'))
{
IoC::singleton('bundle.provider: github', function()
{
return new Tasks\Bundle\Providers\Github;
});
\ No newline at end of file
});
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment