Composer загружает один класс с пространством имен

Я пытаюсь использовать symfony flex с пакетом.

У меня есть эта структура каталогов

/
  src/
    AppBundle/
       AppBundle.php
       # Many classes
    Kernel.php

Я хочу загрузить класс Kernel.php с этим пространством имен App и классы внутри AppBundle с пространством имен AppBundle.

Я пробовал много конфигураций композитора, но не смог их загрузить.

"psr-4": {
    "AppBundle\\": "src/AppBundle/",
     "App\\": "src/"
}

Но у меня были такие ошибки:

Expected to find class "App\AppBundle\AppBundle" in file "/var/www/vhosts/flex/src/AppBundle/AppBundle.php"

ОБНОВЛЕНИЕ

Класс src/Kernel.php имеет другое пространство имен, и я не мог его изменить, потому что его использовали другие классы, пространство имен App. Некоторые скрипты вызывают этот класс, используя use App\Kernel

src/AppBundle/AppBundle.php класс имеет это пространство имен AppBundle

Есть способ сделать это?

ОБНОВЛЕНИЕ 2

Я разобрался:

"autoload": {
    "psr-4": {
        "AppBundle\\": "src/AppBundle/"
    },
    "classmap": [
        { "App\\Kernel": "src/Kernel.php" }
    ]
},

person anacona16    schedule 03.08.2017    source источник
comment
попробуй так "AppBundle\\": "src/",   -  person Mert Öksüz    schedule 03.08.2017
comment
Я получил это исключение Attempted to load class "AppBundle" from namespace "AppBundle". Did you forget a "use" statement for "AppBundle\AppBundle"?   -  person anacona16    schedule 03.08.2017
comment
хорошо, попробуйте использовать этот класс в вашем Kernel.php namespace AppBundle\AppBundle   -  person Mert Öksüz    schedule 03.08.2017
comment
вот где я пытаюсь его использовать.   -  person anacona16    schedule 03.08.2017
comment
Обновите свой вопрос, указав строку пространства имен и строку класса для Kernel.php и AppBundle.php. Ваш композитор выглядит правильно. Я подозреваю, что ваши строки пространства имен неверны. И обязательно запустите composer dumpautoload после обновления composer.json.   -  person Cerad    schedule 03.08.2017
comment
Я обновил свой вопрос.   -  person anacona16    schedule 03.08.2017
comment
@anacona16 уже нашел ответ? Я сталкиваюсь с той же проблемой!   -  person SlimenTN    schedule 18.02.2018
comment
@SlimenTN да, посмотрите мое второе обновление.   -  person anacona16    schedule 19.02.2018
comment
@anacona16 Я сделал это, но все равно та же ошибка!   -  person SlimenTN    schedule 19.02.2018
comment
Вы запускали composer dumpautoload после добавления фрагмента кода в файл composer.json?   -  person anacona16    schedule 19.02.2018


Ответы (2)



Вам нужно только

"psr-4": { "App\\": "src/" }
person Vasil Kulakov    schedule 03.08.2017