This commit is contained in:
2021-04-19 14:25:58 +08:00
parent ab76dc0889
commit 51af761439
5 changed files with 86 additions and 77 deletions
+70 -66
View File
@@ -16,88 +16,92 @@ class Annotation extends Component
{
private Loader $_loader;
private Loader $_loader;
public function init(): void
{
$this->_loader = new Loader();
}
public function init(): void
{
$this->_loader = new Loader();
}
/**
* @return Loader
*/
public function getLoader(): Loader
{
return $this->_loader;
}
/**
* @return Loader
*/
public function getLoader(): Loader
{
return $this->_loader;
}
/**
* @param Loader $loader
* @return Loader
*/
public function setLoader(Loader $loader): Loader
{
return $this->_loader = $loader;
}
/**
* @param Loader $loader
* @return Loader
*/
public function setLoader(Loader $loader): Loader
{
return $this->_loader = $loader;
}
/**
* @param string $className
* @param string $method
* @return array 根据类名获取注解
* 根据类名获取注解
*/
public function getMethods(string $className, string $method = ''): mixed
{
return $this->_loader->getMethod($className, $method);
}
/**
* @param string $className
* @param string $method
* @return array 根据类名获取注解
* 根据类名获取注解
*/
public function getMethods(string $className, string $method = ''): mixed
{
return $this->_loader->getMethod($className, $method);
}
/**
* @param object $class
*/
public function injectProperty(object $class)
{
$this->_loader->injectProperty(get_class($class), $class);
}
/**
* @param object $class
*/
public function injectProperty(object $class)
{
$this->_loader->injectProperty(get_class($class), $class);
}
/**
* @param string $path
* @param string $namespace
* @param string $alias
* @return void
* @throws Exception
*/
public function read(string $path, string $namespace, string $alias = 'root'): void
{
/**
* @param string $path
* @param string $namespace
* @param string $alias
* @return void
* @throws Exception
*/
public function read(string $path, string $namespace, string $alias = 'root'): void
{
$this->_loader->_scanDir(new DirectoryIterator($path), $namespace);
}
$this->_loader->_scanDir(new DirectoryIterator($path), $namespace);
}
/**
* @param string $dir
* @param string|null $outPath
* @throws Exception
*/
public function runtime(string $dir, ?string $outPath = null)
{
$this->_loader->loadByDirectory($dir, $outPath);
}
/**
* @param string $dir
* @param string|array|null $outPath
* @throws Exception
*/
public function runtime(string $dir, string|array $outPath = null)
{
if ($outPath === null) {
$outPath = [];
} else if (!is_array($outPath)) {
$outPath = [$outPath];
}
$this->_loader->loadByDirectory($dir, $outPath);
}
/**
* @param string $filename
* @return mixed
*/
public function getFilename(string $filename): mixed
{
return $this->_loader->getClassByFilepath($filename);
}
/**
* @param string $filename
* @return mixed
*/
public function getFilename(string $filename): mixed
{
return $this->_loader->getClassByFilepath($filename);
}
}
+3 -2
View File
@@ -224,10 +224,10 @@ class Loader extends BaseObject
/**
* @param string $path
* @param string|null $outPath
* @param string|array $outPath
* @throws Exception
*/
public function loadByDirectory(string $path, ?string $outPath = null)
public function loadByDirectory(string $path, string|array $outPath = [])
{
try {
$path = '/' . trim($path, '/');
@@ -238,6 +238,7 @@ class Loader extends BaseObject
if (!str_contains($key, $path)) {
continue;
}
if (in_array($key, $outPath)) continue;
$this->execute($_path);
}
} catch (Throwable $exception) {