Май 13
Symfony
icon1 admin | icon2 Без рубрики | icon4 05 13th, 2008| icon34 Comments »

Первым делом хочу поблагодарить своего коллегу YS-PRO за то, что он поведал мне об этом замечательном фреймворке (и за книгу “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
Затем распаковываем архив на свой локальный сервер.

Большинство действий выполняются из командной строки при помощи утилиты symfony (/data/bin/symfony.bat). Так что сразу добавим ее в путь поиска Windows (PATH). Идем в Система->Свойства->Дополнительно->Переменные среды и добавляем путь к symfony.bat в переменную PATH.

Теперь создадим проект. Для этого добавляем пустую директорию (например helloSymfony) в корень symfony. Из коммандной строки вызываем symfony init-project helloSymfony (все комманды нужно вызывать из корневого каталога вашего проекта). Symfony создаст следующее дерево каталогов:

apps/
batch/
cache/
config/
data/
doc/
lib/
log/
plugins/
test/
web/

Пожалуй, самой важной директорией для нас является apps - она предназначена для всех приложений проекта.
Следующий шаг - создание приложения (проект должен состоять хотя бы из одного приложения):

symfony init-app helloSymfonyApp

Symfony создаст такую структуру директорий:

apps/
helloSymfonyApp/
config/
i18n/
lib/
modules/
templates/
web/
index.php
helloSymfonyApp_dev.php

Теперь нам нужно сконфигурировать сервер. Делаем доступной для пользователя папку web (это будет корнем нашего сайта) - добавляем VirtualHost hello.
Здесь index.php - точка входа (Front Controller), а helloSymfonyApp_dev.php - точка входа для разработчика (symfony предоставляет средства отладки).

Приложение состоит из модулей (страниц). Добавим страницу home в наше приложение helloSymfonyApp:

symfony init-module helloSymfonyApp home

В следствии чего добавляется еще несколько директорий для модуля ;-)
Самым интересным здесь является сгенерированный класс в actions/actions.class.php

class homeActions extends sfActions
{
  public function executeIndex()
  {
    $this->forward('default', 'module'); // использование стандартного шаблона
  }
}

Это - сердце нашей страницы home - контроллер. Он выполняет некоторые действия (определяет данные для представления) и передает управление шаблону (представлению).
В кратце: каждый метод, начинающийся с executeЧТО-ТО передает управление шаблону под именем ЧТО-ТОSuccess.php, который находится в папке templates данного модуля (о других типах методов и шаблонов расскажу позже).

Теперь попросим symfony поприветствовать нас. Добавим новый метод в homeActions:

public function executeSayHello()
{
  $this->name = 'Geek';
  $this->date('d/m/Y');
}

Чтобы отобразить приветствие создаем шаблон sayHelloSuccess.php (в папке templates):

Symfony says: Hello,

Today’s date is

(смотрим в браузере http://hello/helloSymfonyApp_dev.php/home/sayHello/ )

Как видите, все очень просто: в контроллере мы задаем переменную как $this->имя_переменной, а в представлении она доступна, как обычная переменная.

To be continued… ;-)

Май 12
Hello WordPress!
icon1 admin | icon2 Без рубрики | icon4 05 12th, 2008| icon313 Comments »

Привет всем! Собравшись с силами я переехал на wordpress (со старого http://snowcore.blogspot.com/)

Блог посвящаю web программированию (php, symfony, jQuery, ajax и т.п.)

Советую сразу же подписываться на RSS записей: http://snowcore.net/?feed=rss2

До скорой встречи!

Next Entries »