增加控制台配置

This commit is contained in:
yunwuxin
2018-01-26 17:32:19 +08:00
parent 554817c045
commit d0ca837a2c
2 changed files with 325 additions and 299 deletions

View File

@@ -286,4 +286,11 @@ return [
'list_rows' => 15, 'list_rows' => 15,
], ],
//控制台配置
'console' => [
'name' => 'Think Console',
'version' => '0.1',
'user' => null
]
]; ];

View File

@@ -81,12 +81,17 @@ class Console
* @access public * @access public
* @param string $name 名称 * @param string $name 名称
* @param string $version 版本 * @param string $version 版本
* @param null|string $user 执行用户
*/ */
public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN') public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN', $user = null)
{ {
$this->name = $name; $this->name = $name;
$this->version = $version; $this->version = $version;
if ($user) {
$this->setUser($user);
}
$this->defaultCommand = 'list'; $this->defaultCommand = 'list';
$this->definition = $this->getDefaultInputDefinition(); $this->definition = $this->getDefaultInputDefinition();
@@ -95,6 +100,19 @@ class Console
} }
} }
/**
* 设置执行用户
* @param $user
*/
public function setUser($user)
{
$user = posix_getpwnam($user);
if ($user) {
posix_setuid($user['uid']);
posix_setgid($user['gid']);
}
}
/** /**
* 初始化 Console * 初始化 Console
* @access public * @access public
@@ -106,8 +124,9 @@ class Console
static $console; static $console;
if (!$console) { if (!$console) {
$config = Config::get('console');
// 实例化 console // 实例化 console
$console = new self('Think Console', '0.1'); $console = new self($config['name'], $config['version'], $config['user']);
// 读取指令集 // 读取指令集
if (is_file(CONF_PATH . 'command' . EXT)) { if (is_file(CONF_PATH . 'command' . EXT)) {