in Профессиональное

Выносим symfony framework из песочницы

Symfony sandbox наверное знаком каждому, кто когда-либо пробовал этот замечательный фреймворк. Он отлично подходит для прототипирования и изучения symfony (лично я так и начинал – просто, быстро, понятно и сразу заработало). Однако, при всех своих плюсах, использовать symfony sandbox на продуктовых серверах по сути является плохим тоном (хотя и ваш покорный слуга порой грешит сим ))). Чем же это плохо? В основном с проблемой sandbox сталкиваешься когда хочется обновить symfony на более позднюю версию, так как системные файлы symfony хоть и лежат обособлено, не понятно что из них нужно заменять, что нельзя (при использовании VCS систем типа SVN это становится еще бОльшей проблемой). Ниже описано как отучить symfony sandbox с применением PEAR:

Итак, имется проект, взращенный из sandbox, и нам хочется получить более гибкий контроль над symfony – misc обновления, багфиксы и т.п.Приступаем:

Для начала, нам нужно установить менеджер пакетов PEAR (если он у вас установлен, переходите дальше). Подробно установка PEAR описана тут http://pear.php.net/manual/ru/installation.getting.php. Если будут страждущие – переведу отдельно ) Хотя на просторах интернетов это и так “стопицот” раз описано. Хочу лишь добавить, что в последний раз при установке PHP из remi репозитория PEAR был установлен автоматически.

Итак, PEAR у нас есть, теперь устанавливаем пакет symfony:

pear channel-discover pear.symfony-project.com
pear install symfony/symfony

Проверить версию symfony можно так:

symfony -V
symfony version 1.2.9 (/your/path/to/pear/symfony)

Отлично, symfony поставили, теперь нужно подчистить ваш sandbox – удаляем следующие директории

yourapp/data/Symfony
yourapp/doc/Symfony
yourapp/lib/Symfony

Теперь надо подправить конфиг config/ProjectConfiguration.class.php. Изменяем

require_once dirname(__FILE__).'/../lib/symfony/autoload/sfCoreAutoload.class.php';

на

require_once '/your/path/to/pear/symfony/autoload/sfCoreAutoload.class.php';

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

php symfony propel:build-model
php symfony propel:build-forms
php symfony propel:build-filters
php symfony cache:clear

Вот в общем-то и все. Тем не менее имейте в виду что:

  • это работает в рамках одной minor версии symfony – например 1.2.x. Если вы слишком тянули с апгрейдом, то вам нужно будет свериться с upgrade guide соответствующий вашему переходу. Ссылки на них есть на официальном сайте http://www.symfony-project.org/installation
  • не смотря на то что вы вычистили ваш проект, вы теперь сможете гибко управлять им, используя таски symfony project:freeze и project:unfreeze которые выполняют автоматическое копирование системных файлов или их удаление в ваш sandbox

Write a Comment

Comment

*