developer.co.ua

Holy Copypasters
27.10.2006
Алексей Гоголев

Symfony — PHP5 MVC Фреймворк 0.26

“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:



Symfony можно установить как на Unix-систему так и на Windows. Все что нужно — установленный на машине веб-сервер и PHP5. Поскольку для работы с БД используется Propel, то отсюда поддержка MySQL, PostgreSQL, Oracle, MSSQL и целого ряда других СУБД. Плюсом является также море конфигурационных файлов, благодаря которым разработчик может контролировать почти все. В Symfony встроены специальные инструменты для тестирования, отладки и автоматического создания документации.

Установка Symfony

3 способа установки


Есть три способа установки Symfony: из архива (sandbox), используя PEAR, или самостоятельно «собрать» фреймворк (manual installation), используя репозиторий. В этой статье подробно рассматриваются только два первых.




Я испробовал только первые два способа. Когда я впервые выбирал путь установки, третий пункт отпал сам собой :) — я не был спецом в 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 установлен на ваш компьютер. Но нужно еще установить несколько пакетов, которые используются фреймворком:


Пример установки phing.

$ pear install http://phing.info/pear/phing-current.tgz


Фреймворк установлен. Посмотрим как изменилась файловая структура. Вот список появившихся директорий:


Директории вида $***_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)

1 2 3 4 5

Последние комментарии:

Всё замечательно 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/
Приходите, будем рады!

Алексей Гоголев


http://www.symfony-project.org/forum/index.php/t/12563/
На все уже тут ответили раньше меня :)

Обсудить (комментариев: 12)