среда, 8 октября 2008 г.

Новое в symfony 1.2, часть 1

Имя приложения в CLI командах

Некоторые команды требуют в аргументах имя приложения, так как они используют соединение с базой данных. Но в некоторых из этих команд требовать имя приложения не логично. В symfony1.2 этот аргумент был заменен на опцию --application. Если не указать эту опцию, то symfony возьмет настройки для соединения с базой данных из файла config/databases.yml Примеры таких команд

        #propel
        ./symfony propel:build-all-load 
        ./symfony propel:build-all-load --application=frontend

        #doctrine
        ./symfony doctrine:build-all-load
        ./symfony doctrine:build-all-load --application=frontend
        ./symfony doctrine:migrate
        ./symfony doctrine:migrate --application=frontend
    

Поддержка методов PUT и DELETE в браузере

Теперь можно имитировать поддержку методов PUT и DELETE браузером используя метод POST и добавив специальный скыртый (hidden) параметр sf_method

        <form action='#' method='POST'>
            <input type='hidden' name='sf_method' value='PUT' />

            <!-- // ... -->
        </form>
    
используя эту форму вызвав sfRequest::getMethod получим PUT

Улучшения в "response"

Иногда требуется получить файлы таблиц стилей (stylesheets) и файлы с javascript кодом текущего ответа. Но в версии 1.1 методы getJavascripts и getStylesheets возрващают внутрее представление данных, что в общем оказывается не тем что ожидалось. В symfony 1.2 данные возвращаются в упорядоченом, готовом к использованию виде.

        array
        (
            'bar.css' => array(),
            'foo.css' => array()
        );
    

sfValidatorSchemaCompare валидатор

sfValidatorSchemaCompare стал немного удобнее в использовании

        // symfony 1.1 and 1.2
        $v = new sfValidatorSchemaCompare('left', sfValidatorSchemaCompare::EQUAL, 'right');

        // symfony 1.2 only
        $v = new sfValidatorSchemaCompare('left', '==', 'right');
    

2 комментария:

Vit228 комментирует...

Теперь можно имитировать поддержку методов PUT и DELETE браузером используя метод POST и добавив специальный скыртый (hidden) параметр sf_method

А как это можно использовать???

Sergey комментирует...

Это используется при написании REST приложений, или наверное правильнее будет сказать при написании веб-сервисов используя REST концепцию, предложенную Филдингом и достаточно "модную" сейчас например в мире rails разработчиков.