php - 是否可以将 php 中的类别名列表作为数组获取?

标签 php laravel codeigniter namespaces alias

例子

namespace Foo;
use Test\One;
use Test\Two;
use Test\Three;

class Sample
{}
如何将别名(USE)作为数组获取?
我希望得到的例子
$test = [测试\一,测试\二,测试\树];
有人在不扫描文件的情况下有什么建议吗?
或者是否有一个 PHP 函数可以将列表别名作为数组返回?
任何帮助将不胜感激。

最佳答案

假设我有以下类并且文件位于并命名为以下文件名和位置 src/Foo.php

namespace Foo;
use Test\One;
use Test\Two;
use Test\Three;

class Sample
{}
现在我可以扫描这个文件
使用此功能,我可以扫描该类并获得预期的结果。
<?php
use \SplFileObject;

class Scanner
{
    public static function getUseAliases()
    {
        $className = new SplFileObject("src/Foo.php");
        $use = [];
        
        while (!$className->eof())
        {
            $alias = explode("use ", $className->fgets());

            if(!empty($alias[1]))
            {
                $use[] = trim($alias[1]);
            }
        } 

        $className = null; //Unset the file to prevent memory leaks

        print_r($use);//will print my expected output [Test\One, Test\Two, Test\Three]
    }
}
我认为应该有更好的方法来获得相同的结果,这就是我发布当前解决方案的原因。请让我知道你的想法。

关于php - 是否可以将 php 中的类别名列表作为数组获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64053226/

相关文章:

php - 如何链接两台不同机器上的两个mysql数据库?

PHP 7 - 比较匿名类实例

php - CodeIgniter 中的 Mysql INSERT 和 SELECT

mysql - affected_rows 不适用于 Codeigniter 中的非默认数据库

php - 使用多种自然语言的最有效方法

php - 从 YII 框架中的 3 个表中检索数据

php - 在每个 php 页面的顶部包含 require ("db.php") 是否会减慢速度?

php - +测试编辑数据库的 artisan 命令

php - 计数更新查询在 Laravel 中不起作用

mysql - 如何根据列的值对 Laravel 中的行进行排序?