Класс уже используется, исключение - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь использовать SonataAdminBundle и SonataUserBundle в моем проекте symfony4.Когда я пытаюсь расширить SonataUserBundle, я получаю сообщение об ошибке, в котором говорится, что мой новый класс уже используется:

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 используется только в моем пакете.Я расширил его:

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 в своем проекте.Исключение появляется после расширения пакета.

Есть идеи об этой проблеме?Я уже писал о проблеме, но не получил ответа.

1 Ответ

1 голос
/ 11 апреля 2019

Для решения проблемы. Я только что добавил приложение в свое пространство имен:

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],
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...