developer blog – 451 degrees Fahrenheit

Developer Blog

Archives Posts

Вот он долгожданный релиз symfony 1.1

June 30th, 2008 by pilot

release1.1 Последнее время разработчики усиленно трудились на новой версией symfony и сегодня этот день настал, можно поздравить разработчиков с выходом нового релиза symfony framework!

 

Итак список нового функционала в symfony 1.1:

  • Новая архитектура symfony более настраиваяемая и разделенная, позволяет легко использовать или заменять части фреймворка,
  • Новая объекто-ориентированный form framework, позволяет налету создавать формы и повторо их использовать,
  • Совершенно новая система задач (task system) позволяет быстро создавать рассширяемые батч скрипты и утилиты командной строки,
  • Теперь Symfony имеет приличный YAML parser, с подробными сообщениями об ошибках,
  • Новый менеджер плагинов совместим со стандартом PEAR API, отображает зависимости плагинов, и предлагает набор опций для лучшего управления тем что вы установили,
  • Система обработки форматов позволяет вашему приложению вести себя по разному в зависимости от запроса с iPhone, от поисквого бота, или от браузера,
  • Propel 1.2 ORM теперь представлен в виде плагина, что позволяет вам очень просто перейти на Doctrine или Propel 1.3,
  • Плагин sfCompat10Plugin обеспечит работу вашего проекта основанного на версии 1.0 после обновления до версии 1.1!
  • Система роутинга теперь кешируется, что приведет к значительному увеличению производительности если в вашем приложении разветвеленный роутинг. Так же, класс роутинга (routing class) больше не синглтон (singleton), так что теперь можно легко расширять его под свои нужды,
  • Последнее, не совсем фича, более чем 8,500 юнит и функционал тестов гарантируют общую ставильность кода фреймворка. Количество тестов удвоилось в 1.1 по сравнению с 1.0!

Инсталяция и обновление symfony

Для инсталяции symfony 1.1 через PEAR, теперь нужно явно указывать какую версию вы хотите установить. И так, если вы хотите установить стабильную 1.1.0 версию, выполняем:

$ pear install symfony/symfony-1.1.0

В случае если вы хотите стабильную 1.0 версию:

$ pear install symfony/symfony-1.0.17

Если вы предпочитаете скачивать самостоятельные архивы, качайте архив symfony-1.1.0.tgz или symfony-1.1.0.zip и распакуйте в любую папку на вашем диске.

Если вы новичек в symfony, для вас доступна урощенная версия “песочница” (sandbox) :

Ну и если ты совсем крут и у тебя есть доступ к SVN, просто выполни чекаут ветки 1.1:

$ svn co http://svn.symfony-project.com/branches/1.1/ /path/to/symfony

Все остальное хорошо и в деталях расписано в инструкции по установке symfony.

Обновление существующего проекта

Если вы планируете обновить существующий на symfony 1.0 проект для использования новой версии 1.1, внимательно прочтите UPGRADE файл, который есть в каждом дистрибутиве symfony. Если же вы сейчас используете symfony RC2, убедитесь что вы выполняли команду symfony project:upgrade,перед тем как обновите библиотеки symfony.

Относительно документации

Вся документациия обновлена и отображает изменения между symfony 1.0 и новой версией. Комьюнити оправдало наши ожидания и способствовало переводу документации на 10 новых языков менее чем за 15 дней!

В cookbook добавили несколько полезных примеров и опубликовали первые 4 главы книги о новом фреймворке для работы с формами. API документация так же поможет вам легко найти все что вам нужно по всему коду symfony.

Поддержка

Symfony 1.1, как переходной релиз, будет поддерживаться в течении одного года начиная с 30.06.2008, тогда как 1.0 все еще будет поодерживаться до Января 2010.

Следующий релиз

Фабьен и основная команда уже начали работу над новым функционалом версии 1.2, которая будет выходить по датам, а не по новому функионалу. Таже, цикл релизов будет радикально уменьшен (похоже, что разаботчкик будут использовать agile – scrum методологию). Можно ожидать инетесных фич и улучшений в новом релизе, начиная с совершенно нового генератора админ интерфейса основанного на новой системе работы с формами представленной в symfony 1.1.

Filed under Symfony, php having No Comments »

Archives Posts

Ускоряем работу своего сайта с YSlow

June 24th, 2008 by pilot

В след за выходом Firefox 3 разработчики из Yahoo обновили замечательную утилиту YSlow, совместимая с новой версией фокса.

YSlow – это утилита, которая анализирует web страницы и показывает почему они тормозят при загрузке, основываясь на правилах для высоконагруженных веб сайтов. YSlow – это Firefox add-on интегрированный с популярным Firebug (незаменимый инструмент для веб разработчика).

Что собственно YSlow нам предлагает:

  • Отчет о быстроте работы нашего страницы
  • Сводный отчет по протоколам HTTP/HTML
  • Список частей (компонентов) нашей страницы
  • Набор инструментов, включая JSLint (проверяет javascipt)
    Ну и картинки, куда ж без них.

Performance View

YSlow анализирует каждую страницу и генерирует класс для каждого правила. Если страница может быть улучшенна , YSlow перечислит список конкретных измененений, которые нужно выполнить для ускорения загрузки страницы.

perfview

Stats View

YSlow рассчитывает общий размер веб страницы для двух сценариев с очищенным кешем и заполненым, а также информацию о cookies.

statsview

Components View

YSlow выводит все части (компоненты) старницы включая тип (type), URL, дата Истечения (Expires date), gzip status, время загрузки (load time), размер (size), и ETag. Так же можно увидить заголовок HTTP ответа для каждой части. 

compsview

Filed under Uncategorized having 1 Comment »

Archives Posts

Архитектура symfony 1.1

June 24th, 2008 by pilot

 

Перед окончательным релизом symfony 1.1 (который должен произойти уже на этой неделе), Разработчики расказали о новой архитектуре symfony 1.1. Кроме уже существующих новых возможностей, новая версия – это год сложной работы по внутренней перестройке фреймворка. Итак давайте покапаемся во внутренностях!

Платформа symfony (the symfony platform)

symfony 1.1 основана на множестве сплоченных, но отдельных классах – symfony platform:

The symfony platform

Каждый класс в symfony platform можно использовать без общей MVC (Модель Вид Контроллер) архитектуры. Классы в symfony platform не имеют зависимостей, только одно условие требуется для их использования – это предварительная регистрация в symfony autoloader:

require_once '/path/to/sfCoreAutoload.class.php';
sfCoreAutoload::register(); 

Написав всего пару строк, вы можете использовать любой класс из symfony platform. К примеру если один из ваших проектов не использует symfony, вы все равно можете использовать класс sfYaml просто подключив symfony autoloader:

require_once '/path/to/sfCoreAutoload.class.php';
sfCoreAutoload::register();// load some YAML file or string
$config = sfYaml::load('/path/to/a/file.yml');
$config = sfYaml::load(<<<EOF
config:
  key: value
  foo: [bar, foobar]
  bar: { bar: foo }
EOF);// dump some array to YAML
$yaml = sfYaml::dump($config);  

То же самое касается всех классов, к примеру класс sfCache:

require_once '/path/to/sfCoreAutoload.class.php';
sfCoreAutoload::register();$cache = new sfSQLiteCache(array('database' => dirname(__FILE__).'/cache.db'));
$cache->set('foo', 'bar');
$value = $cache->get('foo');  

В примерах используется SQLite backend, но symfony таже предоставляется backends основанные на File, APC, XCache, EACcelerator, и Memcache.

Даже если использование независимых классов кажется естественным, symfony platform пошла на шаг дальше с такими классами как sfRequest или sfResponse. Посмотрим пример где используются эти два класса для создания простого скрипта ‘Hello World’:

require_once '/path/to/sfCoreAutoload.class.php';
sfCoreAutoload::register();

$dispatcher = new sfEventDispatcher();$request = new sfWebRequest($dispatcher);
$response = new sfWebResponse($dispatcher);$content = 'Hello '.$request->getParameter('name', 'World');$response->setContent($content);
$response->send();  

В этом примере мы используем объект sfEventDispatcher. Даже если классы в платформе полностью разделены, некоторые классы могут общаться друг с другом благодаря диспечеру (dispatcher). Диспечер (dispatcher) преставляет средства для уведомления и прослушивания событий. Вам не нужно создавать интерфейс для прослушивания, и использовать какой-либо специальный класс для создания события; событие определяется только по его имении и массивом параметров отправленых уведомителем (notifier).

К примеру, класс sfPatternRouting прослушивает события request.filter_parameters:

$callback = array($this, 'filterParameters');
$dispatcher->connect('request.filter_parameters', $callback);  

И когда зпрос создан, sfWebRequest уведомляет событие request.filter_parameters:

$event = new sfEvent($this, 'request.filter_parameters');
$parameters = $dispatcher->filter($event, $parameters);  

Итак, даже если классы sfWebRequest и sfPatternRouting разделены, они автомотичеки общаются друг с другом, когда они разделяют общий диспечер (dispatcher).

Чтоб представить эту возможность, изменим чуток в предыдущем примере, добавим объект роутинга (routing object), который подключается к приложению ‘Hello World’ по шабону /hello/:name:

require_once '/path/to/sfCoreAutoload.class.php';
sfCoreAutoload::register();$dispatcher = new sfEventDispatcher();$routing = new sfPatternRouting($dispatcher);
$routing->connect('hello', '/hello/name');$request = new sfWebRequest($dispatcher);
$response = new sfWebResponse($dispatcher);$content = 'Hello '.$request->getParameter('name', 'World');$response->setContent($content);
$response->send();  

Теперь, если вы сохраните этот скрипт как index.php в root папке вашего веб сервера, вы можете увидеть работу приложения набрав в браузе, к примеру /index.php/hello/451fahrenheit.

Это хорошо если вы хотите использовать некоторые интересные функции, которые предлагает symfony, без использования всей MVC архитектуры.

Это так же прекрасный способ перевести ваше старое приложение на symfony. Вместо того, чтоб переписывать все с нуля, вы можете ввести концепцию symfony один раз.

Вы так же можете создать свой собственных фреймворк основаный на symfony platform. Вам не нужно выдумывать колесо, symfony platform все что вам нужно для создания классного фреймворка:

  • sfRequest/sfRouting: Запросы
  • sfUser/sfStorage: Пользователь/Сессии
  • sfForm: Фреймворк для создания форм 
  • sfCache: Работа с кешем 
  • sfOutputEscaper: Защита от  XSS атак

  • sfResponse: Ответы

Конечно, symfony framework сам основан на symfony platform:

The symfony MVC framework

Класс sfConfiguration предлагает способ для конфигурирования и настройки вашего приложения. Класс sfContext  действует как регистр который хранит ссылки на все объекты ядра. И благодаря конфигурационному файлу factories.yml, вы очень легко можете настраивать все зарегистрированные классы, всего лишь  отредактировав YAML файл.

Symfony MVC framework предлагает ряд дополнительных классов на вершине symfony framework, как показно ниже:

The symfony MVC framework

Слой Модели (Model layer)  предствален сторонними библиотеками, Propel или Doctrine. Даже если symfony 1.1 связана с плагином Propel, нет ничего проще перейти на Doctrine, установив sfDoctrinePlugin. Обе ORMs предлагают одинаковый уровень интеграции с symfony.

Слой Вид (View layer) представлен классом sfView , набором хелперов (helpers), и шаболнами (templates) разработчика.

Слой Контроллер (Controller layer) основан на цепочке фильтров (filter chine) и действий (actions) определенных разработчиком.

Начиная с версии 1.1, symfony одним из наиболее разделенных фреймворков существующих на PHP, даже болше чем Zend Framework. К примеру,  sfForm фреймворк используется без любых классов MVC в отличии от Zend_Form который несколько привязан к слоям контроллер и вид (controller and view layers).

Filed under Symfony, php having 1 Comment »

Archives Posts

Пора искать новые технологии Ajax ave – no exit

June 20th, 2008 by pilot

Улица в Новой Зеландии, предупреждает что пора искать замену ajaxa )) для web 3.0

Filed under Ajax, юмор having No Comments »

Archives Posts

Визуализация страниц ввиде облака тегов

June 19th, 2008 by pilot

oursignal

Our Signal взяли Digg, Reddit, Delicious, и Hacker News и представили отдельно взятую страницу как тег используя jQuery.

Размер прямоугольника отображает популярность, а цвет отображает скорость роста популярности. Если цвет теплый, значит популярность растет, и наоборот, уменьшается если цвет холодный.

Интересное решение для визуализации контента!

Ждем нашего клона ))

Filed under Ajax, jquery, web having No Comments »

Archives Posts

Свершилось! Первые части книги "Формы и Действия в Symfony" доступны online

June 18th, 2008 by pilot

Я думаю многие долго ждали этой новости, и наконец-то дождались.

Разработчики предствили пока что первые 4 части книги "symfony Forms in Action":

Эти главы покрывают все, что нужно для того чтоб начать работать с формами в новой версии symfony 1.1. Если вы разрабочик тогда желательно прочитать все части с 1 по 4. А если вы дизайнер тогда достаточно прочитать 3 часть, где расказуется как работать с макетами для форм.

Первые части расказывают о всех возможностях, которые так же были доступны в версии symfony 1.0, а вот остальные части книги раскажут о дополнительных возможностях, которые будут доступны только в 1.1. Полное содержание книги:

  • Создание форм
  • Проверка форм (Валидация)
  • Формы для веб дизайнеров
  • Интерграция с Propel
  • Дополнительные формы
  • Структурированные формы
  • Дополнительные формы для веб-дизайнеров
  • Интернационализация и Локализация
  • Расширение ваших форм
  • Использование с другими фреймворками (frameworks)
  • Приложение A – Связи с Виджетами (Widgets)
  • Приложение B – Связи с Валидаторами (Validators)

От разработчиков: Надеемся, эта книга поможет вам в изучении форм. И пожалуйста, не поленитесь оставить отзыв или идеи о том как можно улучшить эту книгу. Если найдете ошибки то сообщите об этом в trac system.

Источник: http://www.symfony-project.org/blog

От меня: В ближайшее время ждите переводов глав книги на русский язык на моем блоге.

Filed under Symfony having 3 Comments »

Archives Posts

Рисуем web 2.0 кнопки on-line

June 17th, 2008 by pilot

Понадобилось срочно нарисовать несколько кнопок в стиле web 2.0 обращатся к дизайнеру просто долго,  порылся на просторах  интернета и нашел вот такой  впролне отвечающий моим требованиям генератор кнопочек “As Button Generator” (“As” сокращение от ActionScript) выделяется из подобных тем что:

  • Написан на Flash, что позволяет сразу видить изменения
  • Управление текстом на кнопке с помощью мыши
  • Большое количество опций настройки

Filed under Uncategorized having No Comments »

Archives Posts

70 советов по написанию продвинутого CSS-кода

June 17th, 2008 by pilot

Оличная статья для как для новичков так и для профи в CSS.

CSS – это не всегда просто. В зависимости от ваших навыков и опыта, CSS-программирование может стать кошмаром, особенно если вы не совсем уверены что правильно применяете селекторы к элементам HTML. Существует множество способов упрощения кода с как с использованием общеизвестных атрибутов CSS, так и с использованием не очень известных атрибутов. Все эти атрибуты вы можете использовать для семантически правильной разметки.

Перевод лежит здесь, оригинал на smashingmagazine.com.

Filed under Uncategorized having No Comments »

Archives Posts

Wordle – красивое облако тегов

June 17th, 2008 by pilot

Wordle — это игрушка для генерации “Облако тегов” по вашему тексту. Облако хорошо показывает какие слова наиболее популярны в вашем тексте. В настройках можно указывать разные шрифты, макет отображения, и цветовую схему. Ну, а дальше его можно распечатать или сохранить для дальнейшего использования в галерее Wordle.

А вот и примерчик облака для поста Как создать отимизированую версию сайта под iPhone в Symfony 1.1

Красиво! ))

Filed under web having No Comments »

Archives Posts

Разработчики Firefox ускоряют реализацию CSS3

June 17th, 2008 by pilot

Firefox 3 релиз есть, и уже существуют планы по реализации CSS 3 в будующий версияx.

FF3.1 должен включать селекторы, @media queries, text-shadow, font-stretch, и загружаемые web шрифты с  @font-face; FF4 должны добавить calc() и attr(), наряду с модулями Анимации и Перемещений (Animation and Transitions) предложеными Webkit team.

Весь список планируемых добавлений можно прочитать в Mozilla Wiki.

Конечно нужно пошевелиться, ребята из Opera, в версии 9.5 реализовали практически весь CCS3

А так же:

Не забываем порадоваться, что вышел наконец-то Google Toolbar для FF3.

Filed under Css having No Comments »

« Previous Entries