Алексей Гоголев
Symfony — PHP5 MVC Фреймворк
Ruby has Rails, Python has Django and now PHP has Symfony.
— by Joey deVilla
Symfony — фреймворк с открытым кодом, написанный на PHP5. В основе Symfony лежит архитектура МVС и ORM Propel. Symfony отличается прозрачным дизайном, читаемостью кода и позволяет разработчику сконцентрироваться на принципах быстрой разработки (agile development) — DRY, KISS, XP. Фреймворк предлагает удобные средства для решения как типовых задач так и для создания масштабных интернет-приложений уровня enterprise, например таких как Yahoo! Bookmarks Beta, который был запущен совсем недавно (10.28.06).
Symfony спонсируется французским веб-агенством Sensio и распространяется по MIT-лицензии. Проект активно развивается и каждую неделю появляется что-то новое. Вокруг Symfony — активное сообщество. На сайте проекта http://symfony-project.com можно найти подробную документацию и замечательные учебные пособия. Также, создано вики и форум, на котором можно задать возникшие вопросы. Огромным плюсом является IRC канал #symfony: irc://irc.freenode.net/symfony, где в любое время суток можно проконсультироваться у знающих парней. Обычно в чате присутствует один из разработчиков, и уж у него точно есть ответ на любой вопрос новичка.
Основные возможности Symfony:
- MVC архитектура
- ORM Propel
- Специальные средства, упрощающие создание шаблонов страниц
- Управление многоуровневым кэшем (например, можно кэшировать разные части View)
- Наличие development и production среды (development/production environment). Причем их может быть несколько.
- Scaffolding — автоматически генерируемый модуль для управления содержимым таблицы из базы данных
- Человеко-Понятные URL (ЧПУ)
- Многоязычность (i18n)
- Поддержка AJAX
- Еще много чего
Symfony можно установить как на Unix-систему так и на Windows. Все что нужно — установленный на машине веб-сервер и PHP5. Поскольку для работы с БД используется Propel, то отсюда поддержка MySQL, PostgreSQL, Oracle, MSSQL и целого ряда других СУБД. Плюсом является также море конфигурационных файлов, благодаря которым разработчик может контролировать почти все. В Symfony встроены специальные инструменты для тестирования, отладки и автоматического создания документации.
Установка Symfony
3 способа установки
Есть три способа установки Symfony: из архива (sandbox), используя PEAR, или самостоятельно «собрать» фреймворк (manual installation), используя репозиторий. В этой статье подробно рассматриваются только два первых.
- Sandbox Sandbox это архив с пустым проектом. Все необходимые библиотеки уже подключены и сделаны базовые настройки. Этот путь установки рекомендуется начинающим. Схема установки простая, таким образом можно быстро перейти к изучению учебных пособий(tutorials).
- через PEAR Этот путь рекомендуется тем, кто хочет работать одновременно над несколькими проектами. Также установка через PEAR позволяет легко делать upgrade фреймворка. Для такой установки требуется PEAR версии 1.4.0 или выше.
- Самостоятельная установка Подразумевает, что вы опытный разработчик и хорошо разбирайтесь в фреймворке. Позволяет модернизировать фреймворк самостоятельно.
Я испробовал только первые два способа. Когда я впервые выбирал путь установки, третий пункт отпал сам собой :) — я не был спецом в Symfony и только начинал осваивать фреймворк. Первый выглядел слишком примитивным. Больше всего мне приглянулся способ — через PEAR. Прочитав о том, что можно будет легко делать upgrade фреймворка, я подумал: «Зачем мне апгрейд? Меня вполне устроит просто рабочая версия». Делать сразу несколько проектов я тоже не собирался.
А если серьезно, то лучше всегда оставлять себе место для маневра. Вы не собирайтесь делать апгрейд? Я тоже не собирался. Но по ходу работы обнаружилась ошибка в фреймворке, которая была исправлена в последующих версиях. Вот тогда-то возможность апгрейда очень пригодилась. Стоит также отметить, что Symfony быстро развивается, новая версия с новыми возможностями может появиться через несколько дней после вашей первой установки. Так что если вы решили ставить symfony sandbox, обновляться вам будет тяжело.
Перед тем как приступить к установке
Для установки Symfony требуется PHP5 и веб-сервер Apache. Рекомендую брать PHP версии 5.1.4 и выше. На форуме упоминалось о проблемах, связанных с более старыми версиями PHP5. Если вы решили ставить через PEAR, то (сюрприз!) вам нужен еще и установленный PEAR. Наверняка понадобиться и база данных — MySQL, PostgreSQL, Oracle, MSSQL, и другие базы, которые поддерживаются Creole — интерфейсом абстракции доступа к СУБД в Propel (database abstraction layer).
Sandbox
Sandbox — это просто архив, содержащий пустой проект. Все нужные библиотеки (symfony, pake, creole, propel и phing) уже подключены. Надо просто распаковать архив в DocumentRoot вашего сервера. Как видите все просто. Sandbox существует для тренировочных целей, но версия запакованная в sandbox, не «тренировочная» и полностью эквивалентна версии, которую можно установить через PEAR. Еще раз напомню, что используя sandbox нельзя легко осуществить upgrade.
Теперь перейдем к действию. Качаем sandbox тут http://www.symfony-project.com/get/sf_sandbox.tgz и распаковываем его в DocumentRoot вашего сервера.
Например, DocumentRoot == "D:/projects/sf_sandbox/". Пробуйте загрузить http://localhost/web/. Вы должны увидеть страницу, содержащую поздравление с успешной инсталляцией:
Сongratulations!
If you see this page, it means that the creation of your symfony project on this system was successful.
You can now create your model and customize default templates.
© 2004–2005 symfony project
После, вы можете начинать проходить учебные пособия, но лучше почитайте еще немного т.к. вы вряд ли увидите это сообщение при первой попытке :)
Если у вас не появляется страница поздравлений, я вас пойму. У меня тоже не грузилась эта чертова страница и я долго злился, пытаясь решить проблему. Проблема оказалась в .htaccess, о котором речь будет в следующей статье о Symfony. А пока попробуйте набрать URL вида http://localhost/web/index.php
В корне sandbox-а есть batch-файл symfony.(bat|sh). И если вы решили изучать Symfony, он вам не раз пригодится. Зайдите в директорию sf_sandbox/ и введите команду:
$ ./symfony.sh clear-cache (*nix) symfony clear-cache (Windows)
Советую запомнить эту команду (для нее есть сокращенный вариант symfony cc), она очищает кэш. Теперь получим полный список команд:
$ ./symfony.sh -T (*nix) symfony –T (Windows)
Чтобы узнать больше, можно почитать readme в папке sf_sanbox. Теперь вы можете пройти коротенькое учебное пособие для разминки, или сразу приступить к замечательной серии учебных пособий askeet tutorial.
Установка через PEAR
PEAR используется для установки различных библиотек из центрального репозитория. У проекта Symfony есть свой собственный канал. Еще раз скажу, что требуется PEAR версии не менее 1.4.0, там есть поддержка каналов. Если у вас стоит старый PEAR, нужно сделать upgrade.
$ pear upgrade PEAR
С PEAR-ом разобрались. Теперь найдем канал Symfony.
$ pear channel-discover pear.symfony-project.com
К установке все готово. Интереса ради можно посмотреть доступные библиотеки:
$ pear remote-list -c symfony
Теперь мы готовы установить последнюю стабильную версию (stable version) Symfony. Вводим волшебную команду:
$ pear install symfony/symfony
Если все прошло гладко, Symfony установлен на ваш компьютер. Но нужно еще установить несколько пакетов, которые используются фреймворком:
- pake устанавливается автоматически,
- creole устанавливается автоматически,
- propel устанавливается автоматически,
- phing нужно устанавливать «руками».
Пример установки phing.
$ pear install http://phing.info/pear/phing-current.tgz
Фреймворк установлен. Посмотрим как изменилась файловая структура. Вот список появившихся директорий:
- $php_dir/symfony/ основные библиотеки
- $data_dir/symfony/ основа приложений(applications), модулей и конфигурации
- $dir/symfony/ документация
- $test_dir/symfony/ автоматическое тестирование модулей
Директории вида $***_dir часть настроек PEAR. Чтобы увидеть значение этих переменных используйте команду:
$ pear config-show
Может быть, вам пригодятся эти же директории, выбранные по умолчанию, для Unix и Windows. Вот они:
Unix | Windows | - |
usr/local/lib/php/symfony/ | c:/Program Files/php/pear/symfony | основные библиотеки |
usr/local/lib/php/data/symfony/ | c:/Program Files/php/pear/data/symfony/ | основа приложений, модулей и конфигурации |
usr/local/lib/php/doc/symfony/ | c:/Program Files/php/pear/doc/symfony/ | документация |
usr/local/lib/php/test/symfony/ | c:/Program Files/php/pear/test/symfony/ | автоматическое тестирование модулей |
Бета-версии
Благодаря установке через PEAR, вы можете легко установить Symfony самой свежей бета-версии. Для этого используйте следующую команду:
$ pear install symfony/symfony-beta
Если у вас уже установлена бета-версия, ее можно обновить:
$ pear upgrade symfony/symfony-beta
Обратите внимание, если вы используйте Windows, бывает так, что PEAR использует свой собственный кэш и не нуждается в канале Symfony, чтоб получить последнюю версию. Рекомендуется очистить кэш перед тем как обновлять Symfony. Чтоб узнать, где лежит папка кэша, используйте команду
pear config-show
Если вы осуществили upgrade фреймворка, не забудьте почистить кэш Symfony.
$ cd myproject $ symfony clear-cache
Чтобы убедиться в успешности upgrade-а, неплохо было бы узнать текущую версию symfony:
$ symfony –V
Вот и все, что касается установки Symfony. Напомню, что самый «продвинутый», третий способ установки здесь не рассматривается. О нем можно почитать в параграфе Installing symfony by hand.
Надеюсь установка прошла благополучно.
P.s. Планируется серия статей на тему Symfony. Cтатьи будут представлять собой авторский перевод symfony book.
Ссылки по теме:
Проект Symfony — PHP5 MVC фреймворк
Creole — Eдиный интерфейс для доступа к СУБД
Propel — PHP Object Relational Mapping (ORM)
Последние комментарии:
Всё замечательно | dreamer |
---|---|
С Денвером всё работает. Прописывайте путь в path как к виртуальному диску, который создаёт денвер. Всё замечательно работает | |
Ну почему все так.... | arsinde |
Может кто подскажет, а то я уже устала биться. Решила попробовать симфони и пройти туториал – 24 дня. С первым все вроде бы прошло гладко. Но когда дело дошло до создания модулей – выполняет без ошибок но в папочке lib/model просто пусто и ничего не создается.... Как так? |
|
Error | Alex |
Подскажите, пожалуйста, как можно исправить ошибку. При установке PEAR с помощью go-pear.bat программа не может определить 'Path to CLI php.exe'. Насколько, я понял этот ехе-файл находится в папке с установленным PHP(c:wwwphp), но при попытке прописать этот путь установщик пишет, что не находит в указанной папке php.exe. |
|
Блог по фреймворку symfony | Александр |
Студия веб дизайна Артсофт приглашает всех присоединиться к общению по этому замечательному фреймоврку – http://symfony.artsofte.ru/ Приходите, будем рады! |
|
Алексей Гоголев | |
2я http://www.symfony-project.org/forum/index.php/t/12563/ На все уже тут ответили раньше меня :) |
|
Обсудить (комментариев: 12)