改名
This commit is contained in:
@@ -6,6 +6,7 @@ namespace Annotation;
|
||||
|
||||
use DirectoryIterator;
|
||||
use Snowflake\Abstracts\Component;
|
||||
use Snowflake\Exception\ComponentException;
|
||||
|
||||
/**
|
||||
* Class Annotation
|
||||
@@ -50,6 +51,7 @@ class Annotation extends Component
|
||||
* @param string $namespace
|
||||
* @param string $alias
|
||||
* @return void
|
||||
* @throws ComponentException
|
||||
*/
|
||||
public function read(string $path, string $namespace, string $alias = 'root'): void
|
||||
{
|
||||
@@ -58,6 +60,15 @@ class Annotation extends Component
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $dir
|
||||
*/
|
||||
public function instanceDirectoryFiles(string $dir)
|
||||
{
|
||||
$this->_loader->loadByDirectory($dir);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $filename
|
||||
* @return mixed
|
||||
|
||||
@@ -10,6 +10,7 @@ use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
use ReflectionProperty;
|
||||
use Snowflake\Abstracts\BaseObject;
|
||||
use Snowflake\Exception\ComponentException;
|
||||
use Snowflake\Snowflake;
|
||||
use Throwable;
|
||||
|
||||
@@ -119,6 +120,7 @@ class Loader extends BaseObject
|
||||
/**
|
||||
* @param DirectoryIterator $paths
|
||||
* @param $namespace
|
||||
* @throws ComponentException
|
||||
*/
|
||||
public function _scanDir(DirectoryIterator $paths, $namespace)
|
||||
{
|
||||
@@ -199,6 +201,29 @@ class Loader extends BaseObject
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $path
|
||||
*/
|
||||
public function loadByDirectory(string $path)
|
||||
{
|
||||
foreach ($this->_fileMap as $value) {
|
||||
if (!str_starts_with($value, $path)) {
|
||||
continue;
|
||||
}
|
||||
$annotations = $this->getClassByFilepath($path);
|
||||
|
||||
foreach ($annotations['methods'] as $name => $attribute) {
|
||||
foreach ($attribute as $value) {
|
||||
if (!($value instanceof \Annotation\Attribute)) {
|
||||
continue;
|
||||
}
|
||||
$value->execute([$annotations['handler'], $name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param DirectoryIterator $path
|
||||
* @param string $namespace
|
||||
|
||||
@@ -465,7 +465,7 @@ class Server extends HttpService
|
||||
$router = Snowflake::app()->getRouter();
|
||||
$router->loadRouterSetting();
|
||||
|
||||
recursive_directory(CONTROLLER_PATH);
|
||||
annotation()->instanceDirectoryFiles(CONTROLLER_PATH);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -477,7 +477,7 @@ class Server extends HttpService
|
||||
{
|
||||
$event = Snowflake::app()->getEvent();
|
||||
$event->on(Event::SERVER_WORKER_START, function () {
|
||||
recursive_directory(SOCKET_PATH);
|
||||
annotation()->instanceDirectoryFiles(SOCKET_PATH);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user