27
Апр

Вышла стабильная версия Propel 1.5

Propel
Хорошая новость для разработчиков использующих Propel, вышла стабильная версия Propel 1.5!!!
Кто не знает – это ORM для PHP (http://www.propelorm.org/).
Изменений в данной версии очень много, но как обещают разработчики, не надо этого пугаться, так как остается совместимость с версиями 1.4, 1.3.
Для апгрейда надо всего лишь перегенерировать модель и начать использовать новые возможности Propel.

Что нового, смотрим здесь http://www.propelorm.org/wiki/Documentation/1.5/WhatsNew.

Удачи!

6
Фев

Symfony Forms I18n изменение поведения

Появилась задача унифицировать поведение всех форм, конкретней, чтобы в многоязычной форме автоматически устанавливалась текущая культура пользователя. Для красоты еще добавил иконку флага как идентификатор культуры.

Все формы у нас наследуются от BaseFormPropel, следовательно открываем файл в нашем проекте $project/lib/form/BaseFormPropel.class.php и в методе класса setup(), пишем нужный нам код.

abstract class BaseFormPropel extends sfFormPropel
{
  public function setup()
  {
    if ($this->isI18n())
    {
      $culture = sfContext::getInstance()->getUser()->getCulture();
      $this->embedI18n(array($culture));

      $icons = sfConfig::get('app_site_language_icons'); // get icon array
      $this->widgetSchema->setLabel($culture, '<img src="'.$icons[$culture].'" width="24" height="24" alt="" />');
    }
  }
}

В файле app.yml у меня хранятся соответствия названий культур и иконок флажков.

all:
  site:
    language_icons:
        ru: /images/flags/24/ru.png
        en: /images/flags/24/en.png
        de: /images/flags/24/de.png

В итоге получаем вот такой вид формы:

form-i18n

5
Авг

PowerDesigner и Symfony

Первоначально при проектировании базы данных, мне очень удобно рисовать ее в специальной программе Sybase PowerDesigner. Но потом переносить это все добро в scheme.yml, просто наказание какето :) . Поэтому наколбасил скрипт на VB, который генерирует содержимое scheme.yml из модели PowerDesigner.
На VB до это я ни строчки в своей жизни не написал, делал все по аналогии в других скриптах. Так что сильно не пинайте, а лучше помогите привести его к нормальному виду :)
Скрипт берем от сюда tables2scheme-yml.

Инсталяция:
Кладем скрипт в директорию «VB Scripts» дистрибутива PowerDesigner, в моем случае «C:\Program Files\Sybase\PowerDesigner 12\VB Scripts» .
Дальше идем меню PowerDesigner Tools -> Execute Commands -> Customize Сommands,
добавляем команду по аналогии со скриншотом:

Дальше жмем ctrl+shift+0, в появишемся редакторе копируем код и вставляем в scheme.yml проекта.
Скрипт работает с глюками, так что вам скорее всего прийдется подправить содержимое scheme.yml, чтобы генерация в symfony происходила успешно.