-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathUserConfig.php
More file actions
85 lines (76 loc) · 2.45 KB
/
Copy pathUserConfig.php
File metadata and controls
85 lines (76 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/**
* Part of Cli for CodeIgniter
*
* @author Kenji Suzuki <https://github.com/kenjis>
* @license MIT License
* @copyright 2015 Kenji Suzuki
* @link https://github.com/kenjis/codeigniter-cli
*/
namespace Kenjis\CodeIgniter_Cli;
use Aura\Di\Container;
class UserConfig
{
public static function registerCommandClasses(Container $di, $ci, array $paths)
{
foreach ($paths as $path) {
foreach (glob($path . '*Command.php') as $file) {
$classname = static::findClass($di, $file);
if ($classname === '') {
break;
}
$di->params[$classname] = [
'context' => $di->lazyGet('aura/cli-kernel:context'),
'stdio' => $di->lazyGet('aura/cli-kernel:stdio'),
'ci' => $ci,
];
}
}
}
/**
* @param string $file
* @return string classname, if not found returns ''
*/
protected static function findClass(Container $di, $file)
{
require_once $file;
$classname = basename($file, '.php');
if (! class_exists($classname)) {
$stdio = $di->get('aura/cli-kernel:stdio');
$stdio->errln(
'<<red>>No such class: ' . $classname . ' in ' . $file . '<<reset>>'
);
return '';
}
return $classname;
}
public static function registerCommands(
Container $di, $dispatcher, $help_service, array $paths
)
{
foreach ($paths as $path) {
foreach (glob($path . '*Command.php') as $file) {
$classname = static::findClass($di, $file);
if ($classname === '') {
break;
}
$command_name = strtolower(basename($classname, 'Command'));
$dispatcher->setObject(
$command_name,
$di->lazyNew($classname)
);
}
foreach (glob($path . '*CommandHelp.php') as $file) {
$classname = static::findClass($di, $file);
if ($classname === '') {
break;
}
$command_name = strtolower(basename($classname, 'CommandHelp'));
$help_service->set(
$command_name,
$di->lazyNew($classname)
);
}
}
}
}