Sep 03 2008

Symfony 1.2: небольшие приятные изменения 2008-09-02

Category: Symfonyingvar @ 00:00

С каждой новой версией разработчики Symfony делают все, чтобы упростить работу API и сделать её более интуитивной и мощной. Вот некоторые примеры того, чем можно будет воспользоваться в symfony 1.2.

1. Названия Приложениний в CLI задачах / Application name in CLI tasks

Некоторые Propel задачи требует указания имя application в аргументах, потому что требуется подключение к БД. На самом деле в некоторых случаях этот параметр не требуется, когда задачи работают с БД не для конкретного application, а всего проекта.

Команда propel:build-all-load теперь выполняется как и другие задачи вида propel:build-*:

# symfony 1.2
./symfony propel:build-all-load
 
# symfony 1.1
./symfony propel:build-all-load application_name

Выполнять загрузку данных (fixtures) или дамп БД в YAML можно следующими задачами:

./symfony propel:data-load
./symfony propel:data-dump

Если же требуется специфическая конфигурация задачи, то можно использовать нужное application:

./symfony propel:buil-all-load --application=frontend

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

Теперь можно имитировать запросы вида PUT и DELETE через метод POST добавив в форму специальный скрытый параметр sf_method:

<form action="#" method="POST">
  <input type="hidden" name="sf_method" value="PUT" />
 
  <!-- // ... -->
</form>

Если работая с формой вызвать метод sfRequest::getMethod(), то получим в ответ PUT. Новые возможности позволяют работать с REST приложениями в более родной форме.

3. Ссылки в ответах / Shortcuts in the response

Порою требуется получить список Stylesheets или JavaScripts от текущего ответа (response). Но т.к. методы getStylesheets() и getJavascripts() возвращают внутреннее отображение информации, то это не то, чего мы ожидали. В symfony 1.2 эти два метода возвращают информацию в удобном формате:

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

4. Валидатор sfValidatorSchemaCompare

Изменилась константа валидатора sfValidatorSchemaCompare. Следующее два примера сейчас эквивалентны:

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

Новый формат стал более читабельным и интуитивным.

Оригинал статьи: New in symfony 1.2: Small things matter

Tags:

Leave a Reply