Class 已在使用异常
Class already in use exception
我正在尝试在我的 symfony4 项目中使用 SonataAdminBundle 和 SonataUserBundle。当我尝试扩展 SonataUserBundle 时,我收到一条错误消息,指出我的新 class 已在使用中:
Fatal error: Cannot declare class Application\Sonata\UserBundle\ApplicationSonat
aUserBundle, because the name is already in use in C:\wamp64\www\staff-test\src\
Application\Sonata\UserBundle\ApplicationSonataUserBundle.php on line 24
我在 bundles.php 文件上启用了捆绑包
在 composer.json 文件中,我在 psr4 属性上添加了我的新包。
我将我的新捆绑包映射到教义上
我的 ApplicationSonataUserBundle class 仅在我的 Bundle 中使用。我扩展了它:
php bin/console sonata:easy-extends:generate SonataUserBundle --dest=src --namespace_prefix=App
我的 Bundles.php 文件:
return [
Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
];
Composer.json:
"autoload": {
"psr-4": {
"App\": "src/",
"Application\":"src/Application/"
}
},
doctrine.yaml
orm:
auto_generate_proxy_classes: true
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
SonataUserBundle: ~
FOSUserBundle: ~
ApplicationSonataUserBundle: ~
ApplicationSonataUserBundle class:
<?php
namespace Application\Sonata\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* This file has been generated by the SonataEasyExtendsBundle.
*
* @link https://sonata-project.org/easy-extends
*
* References:
* @link http://symfony.com/doc/current/book/bundles.html
*/
class ApplicationSonataUserBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataUserBundle';
}
}
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"friendsofsymfony/rest-bundle": "^2.5",
"nelmio/api-doc-bundle": "^3.4",
"sensio/framework-extra-bundle": "^5.1",
"sonata-project/admin-bundle": "^3.48",
"sonata-project/doctrine-orm-admin-bundle": "^3.8",
"sonata-project/user-bundle": "^4.3",
"symfony/acl-bundle": "^1.0",
"symfony/asset": "4.2.*",
"symfony/console": "4.2.*",
"symfony/dotenv": "4.2.*",
"symfony/expression-language": "4.2.*",
"symfony/flex": "^1.1",
"symfony/form": "4.2.*",
"symfony/framework-bundle": "4.2.*",
"symfony/monolog-bundle": "^3.1",
"symfony/orm-pack": "*",
"symfony/process": "4.2.*",
"symfony/security-bundle": "4.2.*",
"symfony/serializer-pack": "*",
"symfony/swiftmailer-bundle": "^3.1",
"symfony/translation": "4.2.*",
"symfony/twig-bundle": "4.2.*",
"symfony/validator": "4.2.*",
"symfony/web-link": "4.2.*",
"symfony/yaml": "4.2.*"
},
我只需要扩展 SonataUserBundle,但每次尝试这样做时,我都会遇到同样的问题。我在我的项目中使用 Symfony4。扩展包后出现异常
知道这个问题吗?我之前发布过这个问题,但没有答案。
解决问题。我刚刚在我的命名空间中添加了应用程序:
namespace App\Application\Sonata\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* This file has been generated by the SonataEasyExtendsBundle.
*
* @link https://sonata-project.org/easy-extends
*
* References:
* @link http://symfony.com/doc/current/book/bundles.html
*/
class ApplicationSonataUserBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataUserBundle';
}
}
在 bundles.php 中也是如此:
return [
App\Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
];
我正在尝试在我的 symfony4 项目中使用 SonataAdminBundle 和 SonataUserBundle。当我尝试扩展 SonataUserBundle 时,我收到一条错误消息,指出我的新 class 已在使用中:
Fatal error: Cannot declare class Application\Sonata\UserBundle\ApplicationSonat
aUserBundle, because the name is already in use in C:\wamp64\www\staff-test\src\
Application\Sonata\UserBundle\ApplicationSonataUserBundle.php on line 24
我在 bundles.php 文件上启用了捆绑包 在 composer.json 文件中,我在 psr4 属性上添加了我的新包。 我将我的新捆绑包映射到教义上 我的 ApplicationSonataUserBundle class 仅在我的 Bundle 中使用。我扩展了它:
php bin/console sonata:easy-extends:generate SonataUserBundle --dest=src --namespace_prefix=App
我的 Bundles.php 文件:
return [
Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
];
Composer.json:
"autoload": {
"psr-4": {
"App\": "src/",
"Application\":"src/Application/"
}
},
doctrine.yaml
orm:
auto_generate_proxy_classes: true
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
SonataUserBundle: ~
FOSUserBundle: ~
ApplicationSonataUserBundle: ~
ApplicationSonataUserBundle class:
<?php
namespace Application\Sonata\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* This file has been generated by the SonataEasyExtendsBundle.
*
* @link https://sonata-project.org/easy-extends
*
* References:
* @link http://symfony.com/doc/current/book/bundles.html
*/
class ApplicationSonataUserBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataUserBundle';
}
}
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"friendsofsymfony/rest-bundle": "^2.5",
"nelmio/api-doc-bundle": "^3.4",
"sensio/framework-extra-bundle": "^5.1",
"sonata-project/admin-bundle": "^3.48",
"sonata-project/doctrine-orm-admin-bundle": "^3.8",
"sonata-project/user-bundle": "^4.3",
"symfony/acl-bundle": "^1.0",
"symfony/asset": "4.2.*",
"symfony/console": "4.2.*",
"symfony/dotenv": "4.2.*",
"symfony/expression-language": "4.2.*",
"symfony/flex": "^1.1",
"symfony/form": "4.2.*",
"symfony/framework-bundle": "4.2.*",
"symfony/monolog-bundle": "^3.1",
"symfony/orm-pack": "*",
"symfony/process": "4.2.*",
"symfony/security-bundle": "4.2.*",
"symfony/serializer-pack": "*",
"symfony/swiftmailer-bundle": "^3.1",
"symfony/translation": "4.2.*",
"symfony/twig-bundle": "4.2.*",
"symfony/validator": "4.2.*",
"symfony/web-link": "4.2.*",
"symfony/yaml": "4.2.*"
},
我只需要扩展 SonataUserBundle,但每次尝试这样做时,我都会遇到同样的问题。我在我的项目中使用 Symfony4。扩展包后出现异常
知道这个问题吗?我之前发布过这个问题,但没有答案。
解决问题。我刚刚在我的命名空间中添加了应用程序:
namespace App\Application\Sonata\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* This file has been generated by the SonataEasyExtendsBundle.
*
* @link https://sonata-project.org/easy-extends
*
* References:
* @link http://symfony.com/doc/current/book/bundles.html
*/
class ApplicationSonataUserBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataUserBundle';
}
}
在 bundles.php 中也是如此:
return [
App\Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
];