Symfony
Первым делом хочу поблагодарить своего коллегу YS-PRO за cheap NBA jerseys то, что он поведал мне об этом замечательном фреймворке (и за книгу “Definitive guide to symfony”).
Symfony – отлично продуманный и легкий в изучении фреймворк. Написан исключительно на PHP5. Он создан для быстрого создания веб приложений (большинство работы symfony сделает за Вас 😉 Не полный список преимуществ:
– простая установка и стабильная работа в Windows и *nix системах
– независимость от базы данных (поддерживаются MySQL, PostgreSQL, MS-SQL, SQLite, Oracle) – используется ORM (Propel + Creole)
– представление состоит из шаблонов и layouts, которые могут быть созданы дизайнерами без знания symfony
– поддержка автоматизированной валидации форм
– автоматическая очистка пользовательского ввода (для избежания SQL инъекций и XSS аттак)
– ЧПУ (человеко понятные урлы)
– Работа с Ajax, средства для постраничного вывода списков, их фильтрации и сортировки
– автоматизация создания административной части
Что ж, попробуем symfony на своем локальном Apache.
Скачать symfony можно здесь: http://www.symfony-project.org/content/download
Затем распаковываем архив wholesale Arizona Cardinals jerseys на свой локальный сервер.
Большинство действий выполняются из командной строки при помощи утилиты symfony (/data/bin/symfony.bat). Так что сразу добавим ее в путь поиска Windows (PATH). Идем в Система->Свойства->Дополнительно->Переменные среды и добавляем путь к symfony.bat в переменную wholesale NBA jerseys PATH.
Теперь создадим проект. Для этого добавляем пустую директорию (например helloSymfony) в корень symfony. Из коммандной строки вызываем symfony init-project helloSymfony (все комманды нужно вызывать из корневого каталога вашего проекта). Symfony создаст следующее дерево каталогов:
apps/
batch/
cache/
config/
data/
doc/
lib/
log/
plugins/
test/
web/
Пожалуй, самой важной директорией для нас является apps – она предназначена для всех приложений проекта.
Следующий шаг – of создание приложения (проект должен состоять хотя бы из одного приложения):
symfony init-app helloSymfonyApp
Symfony создаст такую структуру директорий:
apps/
helloSymfonyApp/
config/
i18n/
lib/
modules/
templates/
web/
index.php
helloSymfonyApp_dev.php
Теперь нам нужно сконфигурировать сервер. Делаем доступной для пользователя папку wholesale NFL jerseys web WordPress! (это будет корнем нашего сайта) – Lexus добавляем moja VirtualHost hello.
Здесь index.php – точка входа (Front Controller), а helloSymfonyApp_dev.php – точка входа для разработчика (symfony предоставляет средства отладки).
Приложение состоит из модулей (страниц). Добавим страницу home в наше приложение helloSymfonyApp:
symfony init-module helloSymfonyApp home
В следствии чего добавляется еще несколько директорий для модуля 😉
Самым интересным здесь cheap NBA jerseys является сгенерированный класс в Freaking actions/actions.class.php
1
2
3
4
5
6
7
|
class homeActions extends sfActions
{
public function executeIndex()
{
$this->forward(‘default’, ‘module’); // использование стандартного шаблона
}
}
|
Это – сердце нашей страницы home – контроллер. Он выполняет некоторые действия (определяет данные для представления) и передает управление шаблону (представлению).
В кратце: каждый метод, начинающийся с executeЧТО-ТО передает управление шаблону под именем ЧТО-ТОSuccess.php, который находится в папке templates данного модуля (о других типах методов и шаблонов расскажу позже).
Теперь попросим symfony поприветствовать нас. Добавим новый метод в homeActions:
1
2
3
4
5
|
public function executeSayHello()
{
$this->name = ‘Geek’;
$this->date(‘d/m/Y’);
}
|
Чтобы отобразить приветствие создаем шаблон sayHelloSuccess.php (в папке templates):
1
2
|
<h3>Symfony says: Hello, <?php echo $name ?></h3>
<p>Today’s date is <?php echo $date ?></p>
|
(смотрим в браузере http://hello/helloSymfonyApp_dev.php/home/sayHello/ )
Как видите, все очень просто: в контроллере мы задаем переменную как $this->имя_переменной, а в представлении она доступна, как обычная переменная.
To be continued… 😉