Files
kiri-core/Annotation/Annotation.php
T

60 lines
922 B
PHP
Raw Normal View History

2020-12-14 19:03:05 +08:00
<?php
namespace Annotation;
2021-03-03 18:35:04 +08:00
use DirectoryIterator;
2020-12-14 19:03:05 +08:00
use Snowflake\Abstracts\Component;
/**
* Class Annotation
* @package Annotation
*/
class Annotation extends Component
{
2021-02-23 14:16:08 +08:00
2021-03-03 18:35:04 +08:00
private Loader $_loader;
2021-02-23 14:16:08 +08:00
2021-03-03 18:35:04 +08:00
public function init(): void
2021-02-23 14:16:08 +08:00
{
2021-03-03 18:35:04 +08:00
$this->_loader = new Loader();
2021-02-23 14:16:08 +08:00
}
/**
* @param string $className
* @return array 根据类名获取注解
* 根据类名获取注解
*/
public function getMethods(string $className): array
{
2021-03-03 18:35:04 +08:00
return $this->_loader->getMethod($className);
2021-02-23 14:16:08 +08:00
}
/**
2021-03-03 18:35:04 +08:00
* @param object $class
2021-02-23 14:16:08 +08:00
*/
2021-03-03 18:35:04 +08:00
public function injectProperty(object $class)
2021-02-23 14:16:08 +08:00
{
2021-03-03 18:35:04 +08:00
$this->_loader->injectProperty(get_class($class), $class);
2021-02-23 14:16:08 +08:00
}
/**
2021-03-03 18:35:04 +08:00
* @param string $path
2021-02-23 14:16:08 +08:00
* @param string $namespace
* @param string $alias
2021-02-26 10:37:12 +08:00
* @return void
*/
2021-03-03 18:35:04 +08:00
public function read(string $path, string $namespace, string $alias = 'root'): void
2021-02-23 14:16:08 +08:00
{
2021-03-03 18:35:04 +08:00
$this->_loader->_scanDir(new DirectoryIterator($path), $namespace);
2021-02-23 14:16:08 +08:00
}
2020-12-14 19:03:05 +08:00
}