在我的文件夹“/ 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,抱歉。
答案 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会将该文件夹下的类添加到可用的命名空间中,您将能够按预期访问它。