Symfony找不到自定义类

时间:2014-03-25 20:34:42

标签: php symfony

在我的文件夹“/ Vendor / User / Admin”中,我创建了一个新的自定义类(Adminuser.php)

namespace \User\Admin;
class Adminuser {
    public $username;
    public $password;       
}

现在我试图在控制器中使用它:

namespace Section\AdminBundle\Controller;
use \User\Admin;
class DefaultController extends Controller
{
    public function indexAction()
    {
        $AdminUser = new \User\Admin\Adminuser();  // CLASS NOT FOUND!!
        .......

为什么会发生这种情况?,命名空间是错误的? (我尝试了几个选项..) 我很同意Symfony,抱歉。

2 个答案:

答案 0 :(得分:1)

只需删除第一个" \"在命名空间中,正如评论所说。所以第一个文件是:     namespace User \ Admin;     class Adminuser {       public $ username;       public $ password;
    } 如果问题仍然存在,请检查自动加载配置,也许正确的方法是使用src目录来开发代码,而不是供应商:S

答案 1 :(得分:1)

您有两个主要问题。

第一次

声明命名空间时,不应以\

开头
 namespace \User\Admin;

应该是:

namespace User\Admin;

第二次

如果您希望这些类存在于Vendors Dir中,那么您需要确保该类正由symfony自动加载。为此,我们将使用作曲家。

在您的composer.json中,您需要更改此部分:

"autoload": {
    "psr-0": { "": "src/" }
},

TO:

"autoload": {
    "psr-0": { "": "src/" },
    "psr-0": { "": "vendor/User/Admin" }
},

然后,composer会将该文件夹下的类添加到可用的命名空间中,您将能够按预期访问它。