Cli: add core_mode() method, set it in handle_args() and add an hook
This commit is contained in:
parent
6aa4113310
commit
f499087241
2 changed files with 41 additions and 13 deletions
2
eesyphp
2
eesyphp
|
@ -16,4 +16,4 @@ else
|
||||||
die("Fail to find composer vendor/autoload.php file\n");
|
die("Fail to find composer vendor/autoload.php file\n");
|
||||||
|
|
||||||
App::init(null, null, __DIR__);
|
App::init(null, null, __DIR__);
|
||||||
Cli :: handle_args();
|
Cli :: handle_args(null, true);
|
||||||
|
|
52
src/Cli.php
52
src/Cli.php
|
@ -6,22 +6,48 @@ use Exception;
|
||||||
|
|
||||||
class Cli {
|
class Cli {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EesyPHP core mode
|
||||||
|
*/
|
||||||
|
private static $core_mode = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize
|
* Initialize
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function init() {
|
public static function init() {
|
||||||
if (php_sapi_name() != 'cli')
|
Hook :: register('cli_set_core_mode', array('\\EesyPHP\\Cli', 'on_cli_set_core_mode'));
|
||||||
return;
|
}
|
||||||
self :: add_command(
|
|
||||||
'new_project',
|
/**
|
||||||
array('\\EesyPHP\\Cli', 'cli_new_project'),
|
* Get/set core mode
|
||||||
I18n :: ___("Create a new project using EesyPHP framework"),
|
* @return bool
|
||||||
null,
|
*/
|
||||||
I18n :: ___(
|
public static function core_mode($enable=null) {
|
||||||
"This command could be used to easily build the structure of a new project using the ".
|
if (!is_null($enable)) {
|
||||||
"EesyPHP framework.")
|
self :: $core_mode = boolval($enable);
|
||||||
);
|
Hook :: trigger('cli_set_core_mode', array('enabled' => self :: $core_mode));
|
||||||
|
}
|
||||||
|
return self :: $core_mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On CLI set core mode hook
|
||||||
|
* @param \EesyPHP\HookEvent $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function on_cli_set_core_mode($event) {
|
||||||
|
if ($event->enabled) {
|
||||||
|
self :: add_command(
|
||||||
|
'new_project',
|
||||||
|
array('\\EesyPHP\\Cli', 'cli_new_project'),
|
||||||
|
I18n :: ___("Create a new project using EesyPHP framework"),
|
||||||
|
null,
|
||||||
|
I18n :: ___(
|
||||||
|
"This command could be used to easily build the structure of a new project using the ".
|
||||||
|
"EesyPHP framework.")
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -127,10 +153,12 @@ class Cli {
|
||||||
/**
|
/**
|
||||||
* Handle command line arguments
|
* Handle command line arguments
|
||||||
* @param array|null $args Command line argurment to handle (optional, default: $argv)
|
* @param array|null $args Command line argurment to handle (optional, default: $argv)
|
||||||
|
* @param bool|null $core_mode Force enable/disable EesyPHP core mode (optional, default: null)
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function handle_args($args=null) {
|
public static function handle_args($args=null, $core_mode=null) {
|
||||||
global $argv;
|
global $argv;
|
||||||
|
self :: core_mode($core_mode);
|
||||||
$args = is_array($args)?$args:array_slice($argv, 1);
|
$args = is_array($args)?$args:array_slice($argv, 1);
|
||||||
$log_level_set = false;
|
$log_level_set = false;
|
||||||
self :: $command = null;
|
self :: $command = null;
|
||||||
|
|
Loading…
Reference in a new issue