Archives Posts
May 20th, 2009 by pilot

Sensio Lab расказала немного о архитектуре видео хостинга Dailymotion
- 50 web серверов, обрабатывают по 5000 запросов в секунду
- 17 серверов баз данных
- 30 memchache серверов, общий объем памяти 210 Гб
- 1.2 petabytes на хранение данных
Этот список не влючает сервера по кодированию видео и обработке поисковых запросов.
В общей сложности сайт обслуживают 450 шт. серверов.
Archives Posts
May 19th, 2009 by pilot
Совсем не давно завершился Symfony UA CAMP, организованный украинским сообществом symfony.org.ua
Изначально мы планировали до 50 человек, но приехало больше 80, это нас очень порадовало. Обрадовали нас и орендадатели зала выделили в честь такого большого количества людей и зал побольше, за что им отдельное спасибо!
Мои доклады на конференции:
Read the rest of this entry »
Archives Posts
March 31st, 2009 by pilot
Итак, 16 мая мы планируем провести конференцию по фреймворку Symfony.
Мероприятие будет проходить по адресу: Киев, ул. Предславинская, 12 (http://predslavinskaya.com.ua/). Партнер и соорганизатор SymfonyCamp - WorldWebStudio
Программа конференции еще составляется.
Желающие посетить мероприятие – пишите на movchan@gmail.com.
Если же не против выступить с докладом – в письме указывайте название доклада.
Archives Posts
February 2nd, 2009 by pilot
Итак в symfony < версии 1.2, для того чтоб добавить поле загрузки файлов в backend, достаточно было внести изменения в generator.yml, т.е. изменить тип поля. Указываем типа type: admin_input_file_tag после чего поле автоматически конвертится в поле загрузки файлов.
Начиная с версии 1.2.x, больше мы как прежде сделать не можем, так как всем правят формы.
Соответственно вместо внесений в generator.yml, нужно сделать изменения в классе форм.
В моем примере у меня есть класс Album в котором есть поле Album Cover (обложка альбома), для того чтоб облажка была файловым полем, обвновляем класс формы AlbumForm.class.php (который создается автоматически) и вставляем в него следущее:
| |
class AlbumForm extends BaseAlbumForm
{
public function configure()
{
$this->setWidget('album_cover', new sfWidgetFormInputFile());
$this->setValidator('album_cover', new sfValidatorFile(array('path' => 'uploads/', 'required' => false)));
}
}
|
В результате мы получим в панеле управления поле для загрузки файлов обложки.
Оригинал blog.rajatpandit.com
Archives Posts
January 21st, 2009 by pilot
Все кто знаком с php фреймворком symfony, думаю следили за проектом jobeet – платформы для публикации вакансий в течении 24 дней.
На сегодняшний момент нельзя посмотреть live версию проекта в интернете и я решил исправить эту ситуацию.
Рад представить все интресующимся и использующих в работе symfony, доработаную версию проекта jobeet до презентабельной версии, которую вы можете поклацать на сайте jobeet.com.ua
В ближайшее время для всех желающих svn проекта http://subversion.assembla.com/svn/ijobeet.
Чего коснулись доработки:
- Основная проблема – это non-latin кодировки, для которых нет коректной ASCII версии символов. Говоря простым языком, jobeet использует библиотеку iconv для транслитерации всех не латинских символов в ASCII и тут же наступает на габли, связаные с таким перекодированием. Функция iconv возвращает на славянские символы – пустой результат, по-этому от транслитерации временно пришлось отказаться
- Из первой проблемы вышла вторая – это поиск, который использует движок Lucene, через прокси фреймворка Zend. И тут ситуация повторяется, так как Lucene использует для создания индекса ASCII снова возникает проблема с non-latin кодировками и корректным из индексированием.
Благо тут на помощь приходит то, что Zend позволяет использовать для индексирования кодировку UTF-8 (с определенныим ограничениями, о них можно прочесть в офф. документации Zend Framework). Вот собственно переход на utf-8 и был осуществленн для корректной индексации и поиска.
- Добавлен русский перевод
- Небольшой ряд мелких исправлений, я не буду на всех останавливаться, практически все исправления описаны в коментариях к коммитам в svn
Все желающие разместить у себя на сайте список ИТ вакансий, в ближайшее время будет доступен API и примеры информеров.
Archives Posts
September 5th, 2008 by pilot
Сегодня мы поговорим о новой системе роутинга – роутинг фрейморк.
Роутинги как объекты класса
До symfony 1.2, система роутинга (через класс sfPatternRouting ) хранила роуты в ассоциативном массиве. Старая система отлично работает, но при этом трудно настраиваемая под свои нужды. Для того чтоб дать разработчикам свободу в модификации и улучшении процесса роутинга, в новой версии все роуты хранятся как массив объекта sfRoute.
Роутинг 1.2 совместим с 1.1 и не требует никаких дополнительных изменений в routing.yml файле.
Если вы хотите прописать роуты напрямую в PHP, теперь нужно указывать объект sfRoute вторым аргументов для методов connect(), preprendRoute(), appendRoute(), и insertRouteBefore() :
$routing->connect('foo_bar', new sfRoute('/foo/:bar', array('module' => 'foo', 'action' => 'bar')));
Настройка роута
Конструктор класса sfRoute принимает последним аргументом массив опций, который позволяет легко настраивать роуты. В конфигурационном файле routing.yml , ключ options применяется для замены настроек по умолчанию:
article:
url: /article/:id-:slug
options: { segment_separators: [/, ., -] }
В опции segment_separators указываются символы разделители для роута. В предыдущем примере как разделитель испольются - (дефис), которые в нашем случае так же валиден как и два разделителя встроенных по умолчанию (/ и .). Таких образом допускаются ссылки вида /article/1-my_article_title с переменной id равной 1 и slug равной my_article_title.
Read the rest of this entry »
Archives Posts
August 1st, 2008 by pilot
Плагины в symfony – это самый простой способ внести свой вклад в развитие фреймворка symfony. Плагины легко пишуться, пакуются, устанавливаются и они могут переписать все что угодно в фреймворке.
Но существующаю система работы с плагинами не может ответить на вопросы:
- А есть ли плагин который добавляет “вот такую штуку” ?
- А поддерживает ли мой любимый плагин новую версию symfony 1.1?
- А совместим ли плагин с Doctrine?
- А какие самые популярные плагины?
- Как я могу помочь доработать плагин?
С текущей системой управления плагинами Trac, на эти вопросы ответить тяжело. Сейчас в системе более 200 плагинов, вот потому и решино было сделать для них отдельную систему.
Read the rest of this entry »
Archives Posts
July 28th, 2008 by pilot
Команды в symfony 1.1 изменились и теперь используют синтаксис пространства имен. Пока что трудно сказать стало ли от этого все хорошо или нет. Старый набор команд так же работает ввиде алиасов на новые имена команд.
Таблица старых и новых команд:
| Old task name |
New task name |
| ————————– |
—————– |
| clear-cache |
cache:clear |
| clear-controllers |
project:clear-controllers |
| disable |
project:disable |
| downgrade |
[Not implemented] |
| enable |
project:enable |
| fix-perms |
project:permissions |
| freeze |
project:freeze |
| init-app |
generate:app |
| init-batch |
[Not implemented] |
| init-controller |
[Not implemented] |
| init-module |
generate:module |
| init-project |
generate:project |
| log-purge |
log:clear |
| log-rotate |
log:rotate |
| plugin-install |
plugin:install |
| plugin-list |
plugin:list |
| plugin-uninstall |
plugin:uninstall |
| plugin-upgrade |
plugin:upgrade |
| propel-build-all |
propel:build-all |
| propel-build-all-load |
propel:build-all-load |
| propel-build-db |
propel:build-db |
| propel-build-model |
propel:build-model |
| propel-build-schema |
propel:build-schema |
| propel-build-sql |
propel:build-sql |
| propel-convert-xml-schema |
propel:schema-to-yml |
| propel-convert-yml-schema |
propel:schema-to-xml |
| propel-dump-data |
propel:data-dump |
| propel-generate-crud |
propel:generate-crud |
| propel-init-admin |
propel:init-admin |
| propel-init-crud |
[Not implemented] |
| propel-insert-sql |
propel:insert-sql |
| propel-load-data |
propel:data-load |
| sync |
project:deploy |
| test-all |
test:all |
| test-functional |
test:functional |
| test-unit |
test:unit |
| unfreeze |
project:unfreeze |
| upgrade |
project:freeze |
Archives Posts
July 21st, 2008 by pilot
Столкнулся с проблемой, перехода на новую версию.
Проапргрейдил свой проект до версии 1.1, но так как рисование форм было выполнено в версии 1.0, то вылезли ошибки:
Fatal error: Call to undefined function form_tag()
Fatal error: Call to undefined function input_tag()
Для решения этой проблемы в файле apps/your_application/config/settings.yml включаем совместимость с версией 1.0
compat_10: on
Вуаля, теперь конструкции form_tag() и тд, работают и в новой версии.
Archives Posts
July 17th, 2008 by pilot
Первое что обещают разработчики symfony, первый релиз которой намечается на октябрь месяц, это новая панель администрирования (точнее, новый генератор новой панели)
В разработке появилось первое описание концепта новой панели администрирования.
Пердлагается разделить модель на две группы:
- Информационные записи (несущие определнные значения)
- Номер
- Город
- Пользователь
- Страница
- Контекстные записи (которые прдлагают информцию в контексте, чаще всего “групп” или “категорий”)
- Група
- Тэг
- Категория
- Тип
Пример такой структуры подробно расписан в концепте, тут же я приведу скриншоты получившейся панели администрированния.
Контекстные записи
Одновременное изменение
 |
Виджеты, табы, глобальная навигация

|
| Поддержка вложенных множеств

|
Расширение списка действий

|
Так же заложена поддержка наследования и и18и