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

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

Статьи:

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

Continue reading

Дамп сущности в Doctrine2

Решил записать, а то постоянно забываю :)

В Doctrine2 дамп сущности или коллекции можно вывести используя статический метод

Doctrine\Common\Util\Debug::dump($entity)

На выходе получим что-то типа:

array
  0 => 
    object(stdClass)[318]
      public '__CLASS__' => string 'Application\PortfolioBundle\Entity\Category' (length=43)
      public 'id' => int 6
      public 'name' => string 'Веб-разработка' (length=27)
      public 'slug' => string 'web-development' (length=15)
      public 'description' => string 'В работе используем PHP (Zend Framework, Doctrine, Smarty, PEAR), JavaScript (jQuery, YUI, MooTools), SQL (MySQL, PgSQL), HTML/XHTML, CSS, багтрекеры и системы контроля версий. С радостью беремся за решение сложных и нестандартных задач.' (length=337)
      public 'projects' => string 'Array(20)' (length=9)
  1 => 
    object(stdClass)[304]
      public '__CLASS__' => string 'Application\PortfolioBundle\Entity\Category' (length=43)
      public 'id' => int 7
      public 'name' => string 'Веб-дизайн' (length=19)
      public 'slug' => string 'web-design' (length=10)
      public 'description' => string 'Первое впечатление о сайте, которое формируется у посетителя, очень сильно зависит от его дизайна и удобства использования. Мы поможем сделать это впечатление наиболее положительным, разработав красивый и функциональный дизайн для Вашего сайта.' (length=452)
      public 'projects' => string 'Array(5)' (length=8)

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

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

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

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

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

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

lifehack для запуска консоли symfony2

Возможно очевидная фишка, но я додумался к ней примерно час назад.

Когда я работаю с symfony2, то в терминале открыт корень проекта. Для того, чтобы запустить скрипт консоли симфони нужно примерно 9ть и нажатий клавиш (или больше). Ход действий такой:
Набираю “./a” => жму [Tab] => набираю “cons” => жму[Tab] => получаю “$ ./app/console”

А с этим лайфхаком их нажатий на клавиши стало ровно 4ре :)
Набираю “./c” и жму [Tab] => получаю “$ ./console”

Кто-то уже наверное догадался, что я создал симлинк “./console” для скрипта “./app/console”.
Команда создания симлинка:

/var/www/test/symfony2 $ ln -s app/console console

Вроде мелочь, а удобно :)

PS. Ещё есть такая вещь как ConsoleAutocompleteBundle, но он у меня заработал только частично. Разбираюсь.

Небольшой дайджест

Отмечу, что народ активизировался и начинает использовать Symfony2.
На днях нашел несколько новых статей:

Symfony2 и Doctrine2 Repository

Я тут подумал, что лучше писать меньше, но чаще :) . Хочется конечно написать большой материал, но времени постоянно не хватает.

Symfony2 и Doctrine2 Repository.

На форуме Игорь Негруца сделал мне замечание по поводу построения DQL запросов прямо в коде контроллеров. Есть такое дело и давно хотелось его поправить.
Continue reading

Doctrine2 Behavioral Extensions

Как-то поверхностно я с Doctrine2 разобрался. Уже несколько раз ловил себя на мысли, что использую далеко не все возможности, а о многих наверное и не в курсе. Поэтому решил поковырять её более предметно.
Continue reading

Первый пост о Symfony2

Около 2х месяцев назад я начал изучать фреймворк Symfony2. Просто хотелось посмотреть что-то новое, разобраться с Doctrine2 и перейти на php 5.3.

В результате получился небольшой учебный проект, на базе которого я планирую наконец доделать портфолио студии.
Continue reading

PHPUnit и покрытие кода (Source code coverage)

Это третья заметка о continuous integration (CI). В ней я затрону такое понятие как покрытие кода. Это одна из мер качества ПО, которая отображает какой процент исходного кода проверяется при запуске тестов.

Continue reading

Непрерывная интеграция ZF проекта при помощи Hudson & Phing

Дальнейшим этапом развития моих отношений с CI стала настройка выполнения юнит тестов в Zend Framework проекте при деплойменте через Phing, а также последующее отображение результатов в Hudson.
Continue reading