С тех пор, как я начал заниматься веб-программированием, я использую денвер, и еще не разу не было причины для его сноса и отдельной установки apache+php+mysql. Так вот на днях я решил начать изучение symfony framework. Посмотрев документацию, был сильно удивлен и обрадован тем что, для него существует приложение для командной строки. Дальше будет описано как в несколько шагов можно установить symfony на денвер и начать работу с ним. (ОС - Windows).
Шаг 1. Установка
Естественно, сначала нужно
скачать и распаковать последнюю версию фреймворка. На момент написания это версия 1.4.1. Фреймворк поставляется в нескольких комплектациях:
1. Sandbox - это "каркас" для нового приложения - то есть распаковываем в папку проекта и начинаем работу.
2. Для установки через PEAR. Тут я тоже сильно в подробности не вдавался, потому что сразу же выбрал 3й вариант.
3. Для установки через командную строку. Я использовал этот вариант.
Фреймворк можно использовать несколькими способами - постоянно копировать для новых проектов, или хранить в одном месте его файлы и использовать их для всех проектов. Я выбрал второй путь, и распаковал все файлы в директорию Z:/usr/symfony/.
Шаг 2. Изменение параметров среды.
Для того, чтобы полноценно использовать все "фичи" symfony, необходимо добавить его директорию 'data\bin' и папку c php.exe в переменную среды path. Для этого нажимаем win+pause -> дополнительные параметры системы -> параметры среды ->системные переменные -> path. Жмем "изменить" и добавляем в конец наши директории, разделяя их знаком ";". В моем случае это "Z:\usr\symfony\data\bin" и "Z:\usr\local\php5\". Жмем ок, нажимаем win+r, вбиваем cmd - выполнить. Проверяем работоспособность - выполняем команду "symfony -V". Если все установлено верно — тогда мы должы увидеть версию symfony и рабочую директорию фреймворка:

Шаг 3. Создание и работа с проектом.
Итак, теперь мы можем использовать все прелести symfony. Посмотреть все методы командной строки можно вызвав "symfony" без параметров. Начнем с создания нового проекта.
Как и у любого инструмента, у symfony тоже есть свои недостатки. На пример, если создавать файлы проекта в директории www/, которая является WEBROOT вашего сайта, вы можете удивиться, набрав адрес: mysite.com/config/databases.yml, где в открытом виде будет выведена информация о ваших базах данных, включая логины и пароли.
Для того, чтобы избежать этого, я решил сместить файлы проекта на уровень выше, где они будут недоступны из браузера. Итак, файловая структура проекта в моем случае имеет вид:
mysite
--www
--project
В папке www будут лежать файлы закгрузки, а так же html/css/js/images. А в папке project - файлы нашего проекта. Теперь начнем генерирование данных. Вызовем командную строку и перейдем в папку project. Затем вызовем
symfony generate:project mysite
И мы увидим новые папки и файлы, созданные автоматически symfony. Для корректной работы с нашей файловой структурой, необходимо изменить файл config/ProjectConfiguration.class.php. В нем нужно добавить одну строку в метод setup:
$this->setWebDir($this->getRootDir().'/../www/');
Теперь можем приступать к генерированию "приложений" нашего проекта. "Приложение" - это отдельный модуль, имеющий коренное отличие от остальной системы. Простейшими приложениями могут быть frontend и backend - пользовательская и административная часть сайта. На пример, для создания приложения frontend необходимо выполнить команду:
symfony generate:app frontend
Проверим, все ли пошло нормально. Для этого зайдем в папку www/. Там мы должны будем увидеть 2 файла: index.php и frontend_dev.php. Если их нет - значит что-то пошло не так, а именно неверно была установлена web директрия приложения. Теперь мы можем первый раз протестировать наш сайт:
http://mysite/frontend_dev.php/Ага, видим ошибки подключения файлов. Заходим в папку www/ и во всех файлах в ней изменяем
require_once(dirname(__FILE__).'/../conf
ig/ProjectConfiguration.class.php');
на
require_once(dirname(__FILE__).'/../proj
ect/config/ProjectConfiguration.class.ph
p');
Итак, мы видим стандартную страницу symfony с информацией о созданном проекте. Для того, чтобы применить стандартный дизайн и стандартную схему директорий для пользовательских файлов, необходимо скопировать все файлы из папки /project/web/, а так же папку sf из директории Z:\usr\symfony\data\web\ в папку /www/. Теперь, обновив страницу мы можем увидеть стандартное сообщение с использованием стандартного оформления:

Полезные ссылки
Теперь можно продолжать осваивать данный фреймворк, и вот несколько ссылок, которые могут помочь в этом нелегком деле:
http://www.symfony-project.org/jobeet/1_4/Doctrine/ru/ - пошаговое изучение фреймворка на примере создания доски объявлений о работе
http://www.slideshare.net/nperriault/30-symfony-best-practices - 30 советов для наилучшего использования symfony
http://vit228.blogspot.com/ - блог про symfony, в котором приведено решение многих мелких проблем
http://habrahabr.ru/blogs/symfony/ - раздел про симфони на хабре