![]() |
Введение в Symfony Framework
Symfony — это один из тех фреймворков на PHP5, который привлекает своей достаточной документацией, множеством плагинов, обновлениями, анонсами новых версий и многим другим. имхо тут нечего больше добавить (:Введение Сразу хочу отметить, что статья не тянет на учебное пособие или руководсво для новичков в PHP, потому что фреймворк досточно сложный, но интересный (: Как говориться, путь осилит идущий. :cool: Мое первое знакомство с фреймворком проходило очень тяжело. Приходилось по ночам читать доки, а днем применять их. И до сих пор открываю для себя что то новое, новая концепция генерирования админ части представленная в symfony 1.2, заставляет восхищяться. Начнемс. Что же нам дает использование symfony? Тут представлены основные возможности фреймворка, все их перечислять не имеет смысла, т.к. их очень много :)
оно и понятно, потому что при генерации подключаются ВСЕ классы, даже те которые может даже и не понадобятся на проекте.+ сам вес фреймворка не редко приближается к достаточно большим размерам. Софт Вы можете сказать, типо «это же PHP, что тут требуется особый софт?». Конечно, нет. Можно открывать файлы даже тем же блокнотом, но тогда ваша работа не будет продуктивной. Лучше всего использовать специализированные IDE, которые помогут лучше работать с проектом, да и это правильно имхо. Я рекомендую: 1. Zend studio for eclipce + symfony plugin 2. Eclipce c плагином для symfony 3. PHPEdit еще одна IDE c поддежкой симфони. С последней я познакомился относительно недавно, но юзаю попрежнему Zend studio for eclipce. А если ли уже готовые CMS на symfony? Да, есть! Проекто этот называется SteerCMS. В CMS уже идет куча модулей, есть несколько собственных шаблонов для сайта. Админка чем то напоминает знаменитый Wordpress. Хороший проект, но видимо разработчики его зарбосили, к сожелению. Эту CMS не комендуется использовать для реальных проектов или самому доводить в более мение работоспособное состояние. У меня эта CMS завелась со второго раза) Установка Symfony Самый простой способ — использовать пакет PEAR. Сразу замечу, что это не очень хороший способ, так как можно легко запутаться и так не установить фреймворк. Если кто хочет всеже попробовать пойти этим путем рекомендую почитать эту заметку. Symfony — PHP5 MVC Фреймворк Там довольно хорошо описана установка symfony как и из PEAR так и из Sandbox,но мы же не ищем легких путей? :cool: Дальше описывает начало проекта и основные конфигурационные файлы. Описание БОЛЬШЕЙ частью взято с офф сайта, т.к. нет смысла придумывать велосипед.Более подробное описание читайте на офф сайте:
Установка проекта В symfony приложения имеющие общие модели данных выносятся в проекты. В проекте «askeet» будет реализованы backend(админка) и frontend(сам сайт) — это 2 приложения. Проект является основой приложений и должен быть создан первым. Всё что вам нужно это папка проекта и коммандная строка: mkdir /home/sfprojects/askeet - создаем диру с проектом symfony init-project askeet - инициализируем проект symfony init-app frontend - создаем frontend для symfony это будет у нас основная часть сайта. symfony generate:project jobeet - генерируем проект Список всех команд (старых и новых) можно тут: Список команд symfony 1.1 в сравнении с symfony 1.0 Конфигурация приложения Главная часть настроек это настройки приложения. Основные константы определены в фронт-контроллере (он находится в директории web/), опции для файлов интернационализации содержатся в YAML файлах директории i18n/, остальные настройки — в директории config/. Также дополнительные, скрытые, но полезные для приложения настройки, заданы в файлах фреймворка. Настройки фронт-контроллера Самые главные настройки приложения находятся в фронт-контроллере; это первый скрипт, который выполняется при запросе (request). Взгляните на стандартный web/index.php Код:
define('SF_ROOT_DIR', dirname(__FILE__).'/..');SF_ROOT_DIR: Корневая директория проекта (Этот параметр обычно должен равняться значению по умолчанию, если вы не хотите менять файловую структуру). SF_APP: Имя приложения в проекте. Необходимо для составления путей. SF_ENVIRONMENT: Название среды (environment). Может быть prod, dev, или любым другим, заданным вами. Этот параметр определяет, какой набор настроек нужно использовать. SF_DEBUG: Опция активирующая режим отладки (debug mode). Только файлы и скрипты из веб директории (в symfony это папка web/) доступны извне. Там находятся скрипты фронт-контроллеров, изображения, таблицы стилей, и яваскрипты. Все остальные файлы не должны находиться в веб директории — это значит, что они могут находиться в любом другом месте. Фронт-контроллер обращается к ненаходящимся в свободном доступе файлам через путь SF_ROOT_DIR. Традиционно, корневая директория находится уровнем выше от директории web/. Но вы можете выбрать совершенно другую структуру. Представим, что файловая структура состоит из двух директорий, одна с открытым доступом и другая с закрытым: Код:
symfony/ # Закрытый доступКод:
define('SF_ROOT_DIR', dirname(__FILE__).'/../symfony');Основные настройки приложения находятся в файлах директории myproject/apps/myapp/config/: Файлы в папке:
Настройки модуля По умолчанию модуль не имеет собственных настроек. Но, если возникнет необходимость, вы можете перезадать некоторые опции приложения для данного модуля. К примеру, можно переопределить параметры используемые в HTML только для всех действий (action) данного модуля, или подключить какой-то специфический яваскрипт. Вы также можете задать новые параметры, доступные только в данном модуле, таким образом обеспечив инкапсуляцию. Настройки модуля содержатся в директории Код:
myproject/apps/myapp/modules/mymodule/config/
Конфигурационные файлы позволяют легко изменять поведение механизмов symfony. Представьте сколько PHP кода необходимо чтоб достичь аналогичных возможностей контроля. Если все настройки были бы собраны в одном файле, файл не только был бы совершенно не читаемым, но и переопределить настройки на нескольких уровнях иерархии (проект/приложение/модуль) было бы невозможным. Конфигурационная система это одна из сильных сторон symfony. Благодаря ей на symfony можно создать почти любые веб приложения, а не только те для которых фреймворк изначально создавался. Режимы (environments) В процессе разработки вам может понадобиться использовать несколько конфигураций. Например, для тестирования приложения во время разработки нужно задать одни настройки подключения к базе данных, а для подключения к реальной базе данных проекта — другие. Symfony предоставляет режимы (environment) чтоб обеспечить возможность использовать различные наборы настроек. Environment — среда, режимПо существу режим (environment) и конфигурация это синонимы. Например, в тестовом режиме в журнал событий заносится предупреждения (alert) и ошибки (error), а в рабочем режиме только ошибки. Зачастую в режиме разработки кэш не активирован, но в рабочем режиме и режиме тестирования кэш работает. Для режимов dev и test могут понадобиться тестовые данные, которые хранятся в базе отдельно от реальных данных, используемых в рабочем (prod) режиме. Поэтому и настройки базы данных для разных режимов будут разные. Все режимы (environment) могут находиться на одной машине, хотя на реальном сервере (production server) обычно содержится только рабочий режим (prod). Установка веб-сервиса Каждый разработчик настраивает свой web сервер под себя, тут можно лишь дать общие советы. Общее руководство можно почитать на офф сайте симфони: День 1: Начало проекта Откуда взята львиная доля материала для этой статьи. Ссылки по теме Отличная серия постов по Symfony Framework Блог по Symfony Скачать последнюю версию фремворка можно от сюда Пропиарю свой сайтец (написан с помощью симфони): gibson blog TODO: список top 10 плагинов к symfony, будет чуть позже |
очень интересная вещь, удобная в использовании, вот только привыкать мне к ней придется долго))) за статью однозначно +
|
| Время: 04:54 |