如何在命名空间应用程序中调用 GetId3 类

Posted

技术标签:

【中文标题】如何在命名空间应用程序中调用 GetId3 类【英文标题】:How to call GetId3 classes within a namespaced application 【发布时间】:2015-04-09 10:55:01 【问题描述】:

如果有人问过这个问题,我很抱歉,但我对它应该如何工作缺乏了解。

我正在构建一个文件服务器来管理音乐文件的上传和下载,并找到了 getID3 库,我可以使用它来获取有关正在上传的文件的信息。

    我已经通过 composer 安装了这个库。以下是我在根目录中的 composer.json 条目

    "james-heinrich/getid3": "dev-master"
    

供应商文件夹已成功更新库。

    该库尚未添加到 vendor/composer 中的 autoload_namespaces.php 文件中(见下文):

    $vendorDir = dirname(dirname(__FILE__));
    $baseDir = dirname($vendorDir);
    
    return array(
      'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'),
      'Psr\\Log\\' => array($vendorDir . '/psr/log'),
      'GetId3_' => array($vendorDir . '/phansys/getid3'),
     );
    

同样在 vendor/composer 的 autoload_psr4.php 文件下,库的命名空间也没有被注册。我不确定是否会出现这种情况。以下是文件内容:

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
  'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
  'FileServer\\' => array($baseDir . '/src'),
 );

问题

如何从 getID3 访问类库?是否需要执行任何特殊操作才能使这些课程可供我使用?

NB:库的 demos 文件夹不使用命名空间,而是“要求”包含类文件,并且在我的理解中失去了作曲家和命名空间的意义。求助于 Phansys Symdony 库根本没有帮助,因为我什至不确定该库是否可以用于独立项目。

提前谢谢你。

【问题讨论】:

你做过'composer dump-autoload'吗? @Frank - 不。让我试试看。谢谢。 【参考方案1】:

命令 composer dump-autoload 是感谢@Frank 的答案。

【讨论】:

很高兴听到它有效:)。感谢您的更新。

以上是关于如何在命名空间应用程序中调用 GetId3 类的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mockery 来模拟没有命名空间的全局类?

具有动态类名的 PHP 命名空间

如何在 C++ 中正确使用命名空间?

PHP - 如何处理应该存在于应用程序命名空间中的真实测试双打?

[Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]

ThinPHP命名空间,连接数据库是要修改的配置文件,Model数据模型层,跨控制器调用,如何获取系统常量信息,