Не можете да заредите персонализиран пакет в Sylius?

Искам да създам свои собствени пакети в Sylius. Създадох в директорията src и нарекох App така

src
   Sylius
        .......
   App
       Bundle
           ShopBundle
                AppShopBundle.php

В този файл написах много просто:

namespace App\Bundle\ShopBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppShopBundle extends Bundle
{
}

И регистрирах този пакет в AppKernel.php

$bundles = array(
    new App\Bundle\ShopBundle\AppShopBundle()
);

Но когато управлявам сайта, имам изключение. Не разбирам проблема тук, някой може ли да ми помогне?

ClassNotFoundException в AppKernel.php ред 28:
Опит за зареждане на клас „AppShopBundle“ от пространството на имената „App\Bundle\ShopBundle“.
Забравихте ли израз „използване“ за „App\Bundle\ShopBundle\AppShopBundle“?


person binbin    schedule 14.04.2015    source източник


Отговори (3)


Трябва да редактирате файла composer.json, за да заредите автоматично новия си пакет

"autoload": {
        "psr-0": { "": "src/" }
}

След това стартирайте dump-autoload на композитора в терминала

person Tuan nguyen    schedule 15.04.2015

Подходът на Туан проработи за мен. В моя случай автоматичното зареждане на composer.json е равно на:

"autoload": {
   "psr-0": { "Sylius\\": "src/", "App\\": "src/" }
},

и тогава ще искате да изчистите кеша, след като изпълните „композитор дъмп-автозареждане“

php app/console cache:clear --env=dev
person user2087816    schedule 12.04.2016

Докато отговорът на Tuan ще работи, той използва psr-0. Добавяне на актуализиран отговор за psr-4 поддръжка.

Променете конфигурацията за автоматично зареждане на composer.json, за да заредите цялата изходна директория така:

"autoload": {
    "psr-4": {
        "": "src/"
    }
}
person harmstyler    schedule 25.07.2017