modify
This commit is contained in:
+1
-92
@@ -279,98 +279,6 @@ class Loader extends BaseObject
|
|||||||
$array = '/' . trim(implode('/', $array), '/');
|
$array = '/' . trim(implode('/', $array), '/');
|
||||||
|
|
||||||
$this->_directory[$array][] = $className;
|
$this->_directory[$array][] = $className;
|
||||||
|
|
||||||
// $directory = $this->splitDirectory($filePath);
|
|
||||||
// array_pop($directory);
|
|
||||||
//
|
|
||||||
// $tree = null;
|
|
||||||
// foreach ($directory as $value) {
|
|
||||||
// $tree = $this->getTree($tree, $value);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if ($tree instanceof FileTree) {
|
|
||||||
// $tree->addFile($className, $filePath);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $filePath
|
|
||||||
* @param string|null $outPath
|
|
||||||
* @return $this
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
private function each(string $filePath, ?string $outPath): static
|
|
||||||
{
|
|
||||||
$tree = null;
|
|
||||||
$directory = $this->splitDirectory($filePath);
|
|
||||||
|
|
||||||
$_tmp = '';
|
|
||||||
if (!empty($outPath)) {
|
|
||||||
$outPath = rtrim($outPath, '/');
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($directory as $key => $value) {
|
|
||||||
$_tmp .= DIRECTORY_SEPARATOR . $value;
|
|
||||||
if (!empty($outPath) && str_contains($_tmp, $outPath)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$tree = $this->getTree($tree, $value);
|
|
||||||
}
|
|
||||||
if ($tree instanceof FileTree) {
|
|
||||||
$this->eachNode($tree->getChildes(), $outPath);
|
|
||||||
$this->execute($tree->getFiles());
|
|
||||||
}
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $filePath
|
|
||||||
* @return false|string[]
|
|
||||||
*/
|
|
||||||
private function splitDirectory(string $filePath): array|bool
|
|
||||||
{
|
|
||||||
$DIRECTORY = explode(DIRECTORY_SEPARATOR, $filePath);
|
|
||||||
return array_filter($DIRECTORY, function ($value) {
|
|
||||||
return !empty($value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $tree
|
|
||||||
* @param $value
|
|
||||||
* @return FileTree
|
|
||||||
*/
|
|
||||||
private function getTree($tree, $value): FileTree
|
|
||||||
{
|
|
||||||
if ($tree === null) {
|
|
||||||
$tree = $this->files->getChild($value);
|
|
||||||
} else {
|
|
||||||
$tree = $tree->getChild($value);
|
|
||||||
}
|
|
||||||
return $tree;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param FileTree[] $nodes
|
|
||||||
* @param string|null $outPath
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
private function eachNode(array $nodes, ?string $outPath = '')
|
|
||||||
{
|
|
||||||
foreach ($nodes as $node) {
|
|
||||||
$this->execute($node->getFiles());
|
|
||||||
if (!empty($outPath) && str_contains($node->getDirPath(), $outPath)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$childes = $node->getChildes();
|
|
||||||
if (!empty($childes)) {
|
|
||||||
$this->eachNode($childes, $outPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -406,6 +314,7 @@ class Loader extends BaseObject
|
|||||||
if (($reflect = $this->getRelect($annotations)) === null) {
|
if (($reflect = $this->getRelect($annotations)) === null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
var_export($reflect);
|
||||||
$class = $reflect->newInstance();
|
$class = $reflect->newInstance();
|
||||||
foreach ($annotations['target'] ?? [] as $value) {
|
foreach ($annotations['target'] ?? [] as $value) {
|
||||||
$value->execute([$class]);
|
$value->execute([$class]);
|
||||||
|
|||||||
Reference in New Issue
Block a user