Intereting Posts
MySQL Полный текст поиска, увеличение минимального символа Как отобразить случайную фразу из списка при нажатии кнопки на веб-странице? Как получить дату истечения срока действия из файла сертификата SSL в PHP Получить данные из XML .NET DataSet в PHP Вызовите частные методы и частные свойства извне класса в PHP создание цепного метода в ларавеле В php существует ли способ отслеживать переменную? pdo catch и вывод mysql-ошибок Со стороны сервера поддержки подготовлены инструкции с PDO? Работа с символами GD (imagettftext ()) и UTF-8 Magento – Как вы возвращаете результаты неограниченного статического блока CMS (с определенным «Идентификатором») на страницу CMS Разбор массива JSON с PHP foreach Magento paypal rounding проблема со скидкой Не удалось подключиться к: localhost: 27017: удаленный сервер закрыл соединение «после обновления Mongo 2.6 Хранение файлов cookie Laravel превышает каждый раз каждые несколько посещений

Symfony 2.1 Расширение основных классов

Я пытаюсь переопределить основные компоненты Symfony своим. Метод, который я использую:

"autoload": { "psr-0": { "": "src/", "Symfony": "src/vendor/symfony/src/" } } 

Однако, когда я запускаю обновление и установку композитора, это никогда не учитывает это. Это не правильный метод, чтобы заставить автозагрузчик заглядывать в другой каталог сначала перед ядром Symfony?

Любые указатели оценили!

EDIT: пути к файлам

SRC / поставщик / Symfony / SRC / Symfony / Мост / Twig / Extension / TranslationExtension.php

src / vendor / symfony / src / Symfony / Component / Translation / Translator.php src / vendor / symfony / src / Symfony / Component / Translation / Loader / YamlFileLoader.php

 <?php // autoload_namespaces.php generated by Composer $vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( 'Twig_Extensions_' => $vendorDir . '/twig/extensions/lib/', 'Twig_' => $vendorDir . '/twig/twig/lib/', 'Symfony\\Bundle\\SwiftmailerBundle' => $vendorDir . '/symfony/swiftmailer-bundle/', 'Symfony\\Bundle\\MonologBundle' => $vendorDir . '/symfony/monolog-bundle/', 'Symfony\\Bundle\\AsseticBundle' => $vendorDir . '/symfony/assetic-bundle/', 'Symfony' => array($vendorDir . '/symfony/symfony/src/', '/src/vendor/symfony/src/'), 'SessionHandlerInterface' => $vendorDir . '/symfony/symfony/src/Symfony/Component/HttpFoundation/Resources/stubs', 'Sensio\\Bundle\\GeneratorBundle' => $vendorDir . '/sensio/generator-bundle/', 'Sensio\\Bundle\\FrameworkExtraBundle' => $vendorDir . '/sensio/framework-extra-bundle/', 'Sensio\\Bundle\\DistributionBundle' => $vendorDir . '/sensio/distribution-bundle/', 'Monolog' => $vendorDir . '/monolog/monolog/src/', 'Metadata\\' => $vendorDir . '/jms/metadata/src/', 'JMS\\SecurityExtraBundle' => $vendorDir . '/jms/security-extra-bundle/', 'JMS\\DiExtraBundle' => $vendorDir . '/jms/di-extra-bundle/', 'JMS\\AopBundle' => $vendorDir . '/jms/aop-bundle/', 'Doctrine\\ORM' => $vendorDir . '/doctrine/orm/lib/', 'Doctrine\\DBAL' => $vendorDir . '/doctrine/dbal/lib/', 'Doctrine\\Common' => $vendorDir . '/doctrine/common/lib/', 'Doctrine\\Bundle\\DoctrineBundle' => $vendorDir . '/doctrine/doctrine-bundle/', 'CG\\' => $vendorDir . '/jms/cg/src/', 'Assetic' => $vendorDir . '/kriswallsmith/assetic/src/', '' => $baseDir . '/src/', ); 

Если вручную отредактировать строку автозагрузки, выполните следующие действия:

 'Symfony' => array('/Users/macbook/Sites/Opia/Gaia/src/vendor/symfony/src/', $vendorDir . '/symfony/symfony/src/'), 

Все работает так, как оно есть. Итак, теперь это в основном находит решение, почему композитор не подходит должным образом.

EDIT 2:

Выполняя еще несколько поисков, этот метод не является хорошей реализацией:

https://groups.google.com/forum/#!msg/composer-dev/HprRV_wJZg4/M_zQ8O7lB6IJ

Вместо этого мне нужно расширить эти классы и сказать Symfony, чтобы использовать эти классы вместо этого, которые должны быть возможны с помощью параметров:

 parameters: security.authentication.listener.anonymous.class: Acme\DemoBundle \Security\Http\Firewall\AcmeAnonymousAuthenticationListener 

Однако я не уверен, какие параметры мне нужно установить для загрузки расширенных классов вместо ядра.

Solutions Collecting From Web of "Symfony 2.1 Расширение основных классов"

Наконец я нашел ответ на этот вопрос.

Во-первых, если вам нужно выяснить, какие классы переопределить, перейдите к:

 symfony/src/Symfony/Bundle/FrameworkBundle/Resources/%Your file to override%.xml 

Там вы найдете список возможных классов Symfony, которые могут быть расширены / отменены.

Затем в ваш config.yml add (я решил поместить мой в расширенное пространство имен):

 parameters: twig.extension.trans.class: Extend\Symfony\Bridge\Twig\Extension\TranslationExtension translation.loader.yml.class: Extend\Symfony\Component\Translation\Loader\YamlFileLoader translator.class: Extend\Symfony\Bundle\FrameworkBundle\Translation\Translator 

Наконец, в моем composer.json:

 "autoload": { "psr-0": { "": "src/", "Extend\\Symfony": "/path/to/your/symfony/classes" } },