Commit 8cfb6d62 authored by Taylor Otwell's avatar Taylor Otwell

refactoring the cli.

parent 611f8d7e
......@@ -17,31 +17,7 @@ Bundle::start(DEFAULT_BUNDLE);
* us to seamlessly add tasks to the CLI so that the Task class
* doesn't have to worry about how to resolve core tasks.
*/
/**
* 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()
{
return new Tasks\Bundle\Bundler;
});
/**
* The migrate task is responsible for running database migrations
* as well as migration rollbacks. We will also create an instance
* of the migration resolver and database classes, which are used
* to perform various support functions for the migrator.
*/
IoC::register('task: migrate', function()
{
$database = new Tasks\Migrate\Database;
$resolver = new Tasks\Migrate\Resolver($database);
return new Tasks\Migrate\Migrator($resolver, $database);
});
require SYS_PATH.'cli/dependencies'.EXT;
/**
* We will wrap the command execution in a try / catch block and
......
......@@ -27,6 +27,9 @@ class Command {
// via the container instead of by this class.
if (Bundle::exists($bundle)) Bundle::start($bundle);
// Once the bundle has been started, we will attempt to resolve the
// task instance. Tasks may be resolved through the file system or
// through the application IoC container.
if (is_null($task = static::resolve($bundle, $task)))
{
throw new \Exception("Sorry, I can't find that task.");
......@@ -47,7 +50,7 @@ class Command {
// Extract the task method from the task string. Methods are called
// on tasks by separating the task and method with a single colon.
// If no task is specified, "run" is used as the default method.
// If no task is specified, "run" is used as the default.
if (str_contains($task, ':'))
{
list($task, $method) = explode(':', $task);
......
<?php
/**
* The migrate task is responsible for running database migrations
* as well as migration rollbacks. We will also create an instance
* of the migration resolver and database classes, which are used
* to perform various support functions for the migrator.
*/
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()
{
return new Tasks\Bundle\Bundler;
});
/**
* 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()
{
return new Repository;
});
/**
* The bundle publisher is responsible for publishing bundle
* assets and tests to their correct directories within the
* application, such as the web accessible directory.
*/
IoC::singleton('bundle.publisher', function()
{
return new Publisher;
});
/**
* The Github bundle provider installs bundles that live on
* Github. This provider will add the bundle as a submodule
* and will update the submodule so that the bundle is
* installed into the bundle directory.
*/
IoC::singleton('bundle.provider: github', function()
{
return new Providers\Github;
});
\ No newline at end of file
......@@ -4,21 +4,6 @@ use Laravel\IoC;
use Laravel\Bundle;
use Laravel\CLI\Tasks\Task;
IoC::singleton('bundle.repository', function()
{
return new Repository;
});
IoC::singleton('bundle.publisher', function()
{
return new Publisher;
});
IoC::singleton('bundle.provider: github', function()
{
return new Providers\Github;
});
class Bundler extends Task {
/**
......
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