Symfony2 создает расширение ветки

Я хочу создать простое расширение ветки ({{imgWidth(...)}}), которое вызывает getimagesize() и возвращает width и height изображения на сервере.

Я следовал инструкциям, которые вы можете найти здесь.

Когда я перезагружаю свою страницу, я вижу только пустую страницу - error.log говорит мне, что

Неустранимая ошибка PHP: класс 'Fms\MediaBundle\Twig\Extension\ImgsizeExtension' не найден в /var/www/fms/app/cache/dev/appDevDebugProjectContainer.php в строке 4773

Сервис в MediaBundle\Resources\config\services.yml выглядит так:

services:
    twig.extension.imgsize:
        class: Fms\MediaBundle\Twig\Extension\ImgsizeExtension
        tags:
            - name: twig.extension

класс:

<?
// src/Fms/MediaBundle/Twig/Extension/ImgsizeExtension.php
namespace Fms\MediaBundle\Twig\Extension;

class ImgsizeExtension extends \Twig_Extension
{
    public function getFunctions()
    {
        return array(
            new \Twig_SimpleFunction('imgsize', array($this, 'imgWidth'))
        );
    }

    public function imgWidth($mediaId = 0, $mediaSize = 'L')
    {
        // ...
        return $mediaId;
    }

    public function getName()
    {
        return 'imgsize';
    }
}

Очистка кеша через консоль или вручную тоже не помогла.


person Ferret    schedule 06.12.2014    source источник
comment
Пустая страница предполагает, что вы работаете в рабочем режиме, а журнал ошибок указывает, что вы находитесь в режиме разработки. Дважды проверьте, что вы находитесь в режиме разработки. Вы получаете панель профиля без расширения? Похоже, ваша конфигурация правильная, я думаю, вы работаете в рабочем режиме и у вас что-то еще не так.   -  person Cerad    schedule 06.12.2014
comment
Нет, я в devMode. Как только я удаляю код в службе, все в порядке (включая панель отладки).   -  person Ferret    schedule 06.12.2014
comment
Хорошо, но в режиме разработки я ожидаю, что ошибки будут отображаться прямо в браузере.   -  person Cerad    schedule 06.12.2014
comment
Да, я вижу ошибки в большинстве случаев - может быть, просто apache-misconfig или что-то подобное. Но Twig-Extension должен работать, но я получаю одно и то же сообщение, даже когда копирую/вставляю данный пример...   -  person Ferret    schedule 06.12.2014
comment
Если бы это был я, я бы исправил ошибки. Возможно, обновите свой вопрос несколькими из них.   -  person Cerad    schedule 06.12.2014


Ответы (1)


Измените <? на <?php. Я скопировал ваш код, и с этой модификацией symfony наконец находит этот класс.

person Grzegorz Krauze    schedule 07.12.2014