gpt4 book ai didi

php - 如何在 Symfony2 中更改命名空间

转载 作者:行者123 更新时间:2023-12-04 16:53:25 25 4
gpt4 key购买 nike

我正在使用 Symfony 2.6

我的主要 bundle 是 AppBundle,所以 bundle 中的所有命名空间如下所示:

AppBundle\DirectoryName



我想更改所有命名空间,以便最终得到如下结果:

MyCompanyName\ProjectName\AppBundle\DirectoryName



================================================== ======

下一个文本显示了我尝试过的内容以及我遇到的错误。

我有类 StringUtilities:
<?php

namespace MyCompanyName\ProjectName\AppBundle\Utility;

class StringUtilities {

}

我在这里使用 StringUtilities:
<?php

namespace AppBundle\Auth;

use MyCompanyName\ProjectName\AppBundle\Utility\StringUtilities as SU;

class UserChecker extends \Symfony\Component\Security\Core\User\UserChecker {
}

运行应用程序时,我收到此错误:

Attempted to load class "StringUtilities" from namespace "MyCompanyName\ProjectName\AppBundle\Utility". Did you forget a "use" statement for another namespace?



这是通过在 app/autoload.php 中添加这一行来解决的
$loader->addPsr4('MyCompanyName\ProjectName\\', realpath(__DIR__.'/../src'));

现在我尝试更改 UseChecker 类的命名空间:
<?php

namespace MyCompanyName\ProjectName\AppBundle\Auth;

use MyCompanyName\ProjectName\AppBundle\Utility\StringUtilities as SU;

class UserChecker extends \Symfony\Component\Security\Core\User\UserChecker {
}

当我尝试通过控制台(php app/console cache:clear)清除缓存时,我收到此错误:

[RuntimeException]
The autoloader expected class "AppBundle\Auth\UserChecker" to be defined in file "/home/damjan/Temp/licence-management/src/AppBundle/Auth/UserChecker.php". The file was found but the class was not in it, the class name or namespace probably has a typo.



在浏览器中运行应用程序时,我收到此错误:

FatalErrorException in UserChecker.php line 0: Compile Error: Cannot redeclare class MyCompanyName\ProjectName\AppBundle\Auth\UserChecker

最佳答案

在 composer 中更改自动加载,然后运行 ​​composer dump-autoload .

之后更改您的命名空间包和您的 AppKernel 并感到高兴。

关于php - 如何在 Symfony2 中更改命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com