Ubuntu, KnpConsoleAutocompleteBundle и php 5.3.10

Есть такой клёвый бандл KnpConsoleAutocompleteBundle от KnpLabs, суть которого заключается в автоподстановке команд для скрипта консоли Symfony2.

Т.е. набираешь “./app/console doc” жмешь [Tab] и получаешь “./console doctrine:”. Жмешь [Tab] ещё два раза и получаешь все варианты комманд:

$ ./app/console doctrine:
doctrine:cache:clear-metadata        doctrine:generate:form
doctrine:cache:clear-query           doctrine:mapping:convert
doctrine:cache:clear-result          doctrine:mapping:import
doctrine:database:create             doctrine:mapping:info
doctrine:database:drop               doctrine:query:dql
doctrine:ensure-production-settings  doctrine:query:sql
doctrine:generate:crud               doctrine:schema:create
doctrine:generate:entities           doctrine:schema:drop
doctrine:generate:entity             doctrine:schema:update

Вобщем удобно очень :) .

Одна проблема — не работает под Ubuntu )). Есть даже тикет соотвествующий от Люиса Кордовы “does not work on ubuntu debian“. В тексте issue он дает ссылку на translate моей темы “проблема с ConsoleAutocompleteBundle” с форума zf.ru.

Так к чему я это пишу? Прошел почти год с того момента как я столкнулся с этой проблемой. Ну, думаю, должны были за это время все разрулить и баг пофиксить. Разворачиваю тестовое приложение, настраиваю, ставлю бандл, настраиваю, пробую автокомплит и разочаровываюсь — проблема осталась (((.

Показал ссылку на обсуждение бага Жене (наш админ) и он посоветовал мне установить php 5.3.10 с ppa. И вот когда я его поставил, то все заработало! Ура :)

PS. На всякий случаю запишу, что ставил я его вот так:

$ sudo add-apt-repository ppa:nginx/php5.3
$ sudo aptitude update
$ sudo aptitude upgrade --full-resolver

Несколько шпаргалок по Symfony2

Нашел на задворках своего HDD несколько шпаргалок по Symfony2. Лучше выложу их сюда, а то когда нужно, то фиг найдешь. Думаю, что они будут многим полезны.

Путь HTTP запроса в Symfony2 (jpg)


Автор Benjamin Dulau

Как работают формы в Symfony2 (pdf)


Автор Andréia Bohner

Symfony2. На чем можно сэкономить время при разработке?

Слайды моей презентации с Symfony Camp.

В целом кемп удался. Правда в прошлом году мне было намного интересней т.к. с symfony я ещё вобще не работал и объем новой информации был просто огромный. Именно тогда я впервые услышал такие слова как haml, less, twig, capistrano, hudson.. А сейчас мы используем в своей работе больше половины из этих вещей :) .

На сегодняшнем кемпе мне больше всего понравился доклад Кирилла Чебунина (Чебы) “Symfony2 Service Container: Inject me, my friend” — я не копался в DI контейнере Symfony2 настолько глубоко и услышал новые для себя вещи.

На втором месте, пожалуй, был доклад Миши Бондарчука (Даверта) “TestGuy – эмулируем вашего тестировщика на PHP” — о этой разработке знаю довольно давно и очень хотелось посмотреть как же оно выглядит в реале.

Доклады Игоря Бровченка и Саши Демченка, тоже были довольно интересны людям, которые не работали с twig и redis. Мои ребята говорили, что им понравилось.

Вобщем ещё раз спасибо Игорю и Саше за организацию. Ждем следующий Symfony Camp ;) .

ps. Кстати у нас (Frameworks Days) есть мысль провести весной 2012 “Symfony2 Framework Day”. Ивент сделать платным и пригласить на него несколько зарубежных докладчиков. Костя Кудряшов порекомендовал Ryan Weaver. Саша Демченко говорил, что Fabien Potencier готов был приехать на Symfony Camp, если бы ему оплатили расходы. Что вы об этом думаете? Думаю было бы круто.

#4й дайджест материалов по Symfony2

Как-то затянулся у меня 4й дайджест материалов. Уже и релиз Symfony2 состоялся, а я все никак не могу к добраться к публикации :) .

Блоги посвященные Symfony2

Рекомендую подписаться на RSS лету блога — http://www.craftitonline.com/. Льюис контрибютит Symfony2 и часто выкладывает новые материалы.

Буквально вот только что наткнулся на интересный блог @qpleple, на котором есть серия хороших статей:

Как раз во время их прочтения решил, что материалы заслуживают добавления в дайждест и поэтому переключился на блог :) .

На блоге http://webb-on-the-web.com/ Роджер Вебб написал всего пару статей, но обе на тему Symfony2. Итак:

Отдельные материалы на тему Symfony2

Symfony2: Checking Coding Standards — о том как проверять стандарты кодирования Symfony2 используя PHP_CodeSniffer. Сразу описана интеграция в Phing и Jenkins (Hudson).
И тут же в комментариях Кирилл Чебунин поделился линком на инфу о том, как это можно прикрутить к NetBeans — Coding Standards in NetBeans IDE with PHP CodeSniffer.

Symfony2 and DoctrineExtensions — о том как подключать Timestable, Sluggable, etc. Все довольно просто подключается и относительно хорошо работает.

Adding non-entity fields to your Symfony2 forms — название опять же говорит само за себя. К примеру, это можно использовать для форм в которых есть поле апдлоада.

Behat turns 2! Have fun and test what — Behat2 стал ещё лучше :) . Либа довольно интересная и в хозяйстве полезная. Сейчас уже доступна версия 2.1.2.

Установка и настройка функционального тестирования в Symfony2 с помощью Behat и Mink — заметка на Хабре после которой я решил все таки попробовать Behat на живом проекте.

Использование Zend GData в Symfony2-проекте
— ещё одна заметка на Хабре, но уже на другую тему. Я с Gdata пока не работал. Вы работали? Для каких задач?

Symfony2\SecurityBundle — перевод «Symfony2 Blog Application Tutorial Part V: Intro to Security». Стоит прочитать.

Все

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

Кстати на Symfony Camp идете? 29го октября я буду выступать там с докладом “Symfony2. На чем можно сэкономить время при разработке?“. Прошлогодний кемп мне очень понравился.

Третий дайджест материалов по Symfony2

@Spoil_me_easy: Хочу напомнить: вы просрали уже 25 дней лета. У вас ещё 67. Удачи.

Новости

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

Начал работу PEAR канал Symfony2. На нем доступны отдельные компоненты фреймворка. Если вы используете эти компоненты в нескольких проектах, тогда жизнь станет чуточку проще ;) .

В Symfony2 появился интерактивный генератор бандлов, который может сильно облегчить жизнь на начальных стадиях разработки проекта. Посмотрите видео — это магия :) .

UPD. Совсем вылетело из головы! С недавнего времени mailing лист по симфони разделили на отдельные mailing листы для первой и для второй версии фреймворка.

Полезные ресурсы

Почитайте блог Ричарда Миллера — за относительно небольшой промежуток времени он успел написать довольно много интересных статей. К примеру, “Symfony2: Moving Away From the Base Controller” — руководство о том как избавиться от наследования базового контроллера и сделать контроллер отдельным сервисом. Использовать почерпнутые из статьи знания следует с умом. Например, Фабьен Потенсьер негативно высказывается о таком подходе.
Continue reading

BlogBundle для Symfony2

После реализации PortfolioBundle, я решил сделать простенький бандл для блога.

Вот что в нем реализовано на данный момент:

  • CRUD записей
  • Подключен редактор разметки markItUp!
  • Реализована подсветка исходного кода в тексте при помощи GeSHi
  • Для создания/редактирования тегов записи написан отдельный тип формы и преобразователь данных
  • Генерация RSS ленты записей при помощи \Zend\Feed (ZF2)
  • Модели и контроллеры покрыты тестами

Ниже я остановлюсь на некоторых моментах более детально.
Continue reading

Бандл для подключения TinyMCE к Symfony2

Дай, думаю, черкну несколько строк о том чем я занимаюсь, а то тишина в блоге :) .

Недавно создал простенький бандл для подключения TinyMCE к Symfony2 проектам. Называется он TinymceBundle и лежит на гитхабе.
Continue reading

Использование переменных окружения в конфигах Symfony2

В слайдах презентации Фабьена “PhpBB meets Symfony2” увидел интересный момент:

В этом примере мы задаем пароль к БД в переменной окружения веб-сервера и потом можем получить его в конфиге как “%doctrine.dbal.password%”.
Я проверил на практике — работает (все таки презентация довольно старая).

Хочу немного рассказать о том зачем и почему такой способ передачи секретной информации удобен.

Continue reading

Второй дайджест материалов о Symfony2

Количество новых материалов радует :) . Если у вас есть ссылки на интересные статьи/слайды/видео о Symfony2 — оставляйте их в комментариях и я добавлю их в следующий выпуск.

Статьи:

И несколько презентаций:

Continue reading

Подключаем DoctrineMigrationsBundle и DoctrineFixturesBundle к проекту на Symfony2

UPD. После релиза Symfony2 некоторые вещи описанные в этой заметке изменились. Советую читать офф. документацию по работе с DoctrineMigrationsBundle и DoctrineFixturesBundle.

DoctrineMigrationsBundle и DoctrineFixturesBundle необходимы для работы с миграциями и фикстурами Doctrine2 посредством консоли Symfony2. Изначально они были в основном репозитории Symfony2, но недавно их оттуда убрали.

Как подключить?

Для подтягивания кода сторонних либ к проекту я использую скрипт bin/vendors.sh (по аналогии с скриптом из symfony-standard).

В этом скрипте, за инициализацию и апдейт вышеперечисленных либ/бандлов отвечают следующие строки:
Continue reading