This commit is contained in:
2021-09-06 14:30:20 +08:00
parent 728f95492f
commit e5dc0b7836
4 changed files with 597 additions and 591 deletions
+5 -7
View File
@@ -28,10 +28,10 @@ use Server\ServerProviders;
use stdClass; use stdClass;
use Swoole\Process; use Swoole\Process;
use Swoole\Timer; use Swoole\Timer;
use Symfony\Component\Console\Application as ConsoleApplication;
use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Application as ConsoleApplication;
/** /**
* Class Init * Class Init
@@ -68,7 +68,7 @@ class Application extends BaseApplication
/** /**
* @throws NotFindClassException * @throws
*/ */
public function withDatabase() public function withDatabase()
{ {
@@ -77,7 +77,7 @@ class Application extends BaseApplication
/** /**
* @throws NotFindClassException * @throws
*/ */
public function withCrontab() public function withCrontab()
{ {
@@ -118,9 +118,7 @@ class Application extends BaseApplication
/** /**
* @throws NotFindClassException * @throws
* @throws ReflectionException
* @throws Exception
*/ */
public function withFileChangeListen() public function withFileChangeListen()
{ {
@@ -163,7 +161,7 @@ class Application extends BaseApplication
public function import(string $service): static public function import(string $service): static
{ {
if (!class_exists($service)) { if (!class_exists($service)) {
throw new NotFindClassException($service); return $this;
} }
$class = Kiri::getDi()->get($service); $class = Kiri::getDi()->get($service);
if (method_exists($class, 'onImport')) { if (method_exists($class, 'onImport')) {
+9
View File
@@ -63,6 +63,15 @@ class Router extends HttpService implements RouterInterface
} }
/**
* @param string $namespace
*/
public function setNamespace(string $namespace): void
{
$this->dir = $namespace;
}
/** /**
* @throws ConfigException * @throws ConfigException
* @throws Exception * @throws Exception
+2 -4
View File
@@ -10,7 +10,6 @@ use Kiri\Abstracts\Config;
use Kiri\Di\NoteManager; use Kiri\Di\NoteManager;
use Kiri\Exception\ConfigException; use Kiri\Exception\ConfigException;
use Kiri\Kiri; use Kiri\Kiri;
use Kiri\Runtime;
use Psr\EventDispatcher\EventDispatcherInterface; use Psr\EventDispatcher\EventDispatcherInterface;
use ReflectionException; use ReflectionException;
use Server\ServerManager; use Server\ServerManager;
@@ -44,7 +43,6 @@ class OnWorkerStart implements EventDispatcherInterface
{ {
$isWorker = $event->workerId < $event->server->setting['worker_num']; $isWorker = $event->workerId < $event->server->setting['worker_num'];
$this->annotation->read(APP_PATH . 'app', 'App');
$this->interpretDirectory(); $this->interpretDirectory();
if ($isWorker) { if ($isWorker) {
ServerManager::setEnv('environmental', Kiri::WORKER); ServerManager::setEnv('environmental', Kiri::WORKER);
@@ -86,9 +84,9 @@ class OnWorkerStart implements EventDispatcherInterface
*/ */
private function interpretDirectory() private function interpretDirectory()
{ {
$fileLists = $this->annotation->runtime(APP_PATH . 'app');
$di = Kiri::getDi(); $di = Kiri::getDi();
foreach ($fileLists as $class) { $fileLists = $this->annotation->read(APP_PATH . 'app');
foreach ($fileLists->runtime(APP_PATH . 'app') as $class) {
foreach (NoteManager::getTargetNote($class) as $value) { foreach (NoteManager::getTargetNote($class) as $value) {
$value->execute($class); $value->execute($class);
} }
+3 -2
View File
@@ -61,12 +61,13 @@ class Annotation extends Component
* @param string $path * @param string $path
* @param string $namespace * @param string $namespace
* @param array $exclude * @param array $exclude
* @return void * @return static
* @throws Exception * @throws Exception
*/ */
public function read(string $path, string $namespace = 'App', array $exclude = []): void public function read(string $path, string $namespace = 'App', array $exclude = []): static
{ {
$this->_loader->_scanDir(new DirectoryIterator($path), $namespace, $exclude); $this->_loader->_scanDir(new DirectoryIterator($path), $namespace, $exclude);
return $this;
} }