About stfalcon

Родился, учился и прожил большущий кусок жизни в Хмельницком. Сейчас живу во Львове - "учусь" на стационаре в ЛПИ.

Второй дайджест материалов о 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

Кто-то читал Сергея Минаева?

Сабж.

“The Тёлки” я читал довольно давно. Помню, что книга читается легко и в целом понравилась. Полезной информации из неё не вынес. Скорей книга о том как не нужно поступать с женщинами.

И вот вчера в поезде прочитал “Р.А.Б. Антикризисный роман”. Роман о офисной жизни внутри крупной корпорации по производству детских игрушек. Первая половина книги (до кризиса) довольно интересная, а вот вторая уже не то… Вобще впечатления остались не однозначные.

Вот интересно, кто-что думает о этих и других книгах Минаева? Судя по отзывам в сети остальные работы автора можно не читать.

lifehack для bash

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

Например мне нужна команда git *, которую я вводил раньше. Без этого хака я делал “$ history | grep git” и искал нужную комманду. С хаком я просто ввожу “git” и жму стрелку вверх пока не попадаю на нужную команду.

Чтобы это заработало нужно добавить в ~/.bashrc следующие строки:

# make bash autocomplete with up arrow 
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'

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

iForum 2011

1го апреля участвовал в круглом столе “Битва фреймворков”, который проходил в рамках конференции iForum 2011. Я отдувался за PHP и фреймворки Zend Framework / Symfony2. Сегодня смотрел видеозапись — вроде нормально получилось :).

Видео под катом Continue reading