refactoring the cli.
This commit is contained in:
@@ -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);
|
||||
|
||||
57
laravel/cli/dependencies.php
Normal file
57
laravel/cli/dependencies.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?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;
|
||||
});
|
||||
@@ -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 {
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user