【问题标题】:Underscores in class names类名中的下划线
【发布时间】:2014-03-03 19:01:54
【问题描述】:

在我的 Symfony2 应用程序中,有时我不得不使用一些不符合 PSR-0 标准的外部 API、类等。

当我尝试将它们与“use”和“new”语句一起使用时,我收到一个错误,即找不到该类。如何让 Symfony 加载包含下划线的类,例如 Some_Class ?

【问题讨论】:

  • PSR-0 允许人们使用下划线...
  • 我在 A_B.php 文件中创建了一个简单的 A_B 类,脚本说它还没有找到。但是当我将它重命名为 AB 并将文件名更改为 AB.php 时,它工作正常。
  • A_B 应该存在于 src/A/B.php(或任何其他自动加载的目录)中
  • A/B.php 中的 A_B 类抛出此异常 ClassNotFoundException: Attempted to load class "A_B"。 “使用”语句:use Acme\CoreBundle\Test\A_B;
  • A/B 当然是在 Acme/CoreBundle/Test 里面

标签: php class symfony namespaces


【解决方案1】:

A_B 类是否使用命名空间?如果是这样,那么您应该可以使用 FQN EX 来调用它:

use Acme\CoreBundle\Test\A_B;

否则您需要使用 require 语句来加载文件并将类加载到全局命名空间。

require_once 'Acme/CoreBundle/Test/A_B.php';

我很确定它是如何工作的。如果我错了,不要开枪。

【讨论】:

    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 2010-10-21
    • 2020-06-18
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多