О Symfony2 - PHP фреймворке который надеюсь увеличит мою эффективность
Symfony2 — PHP фреймворк
Недавно начал разбираться с PHP фреймворком Symfony2. Мощный и удобный инструмент разработки. По началу конечно скорость создания первого проекта ниже, чем с использованием привычных инструментов и подходов, но чувствую, что по мере увеличения понимания требования и структуры фреймворка, моя эффективность растёт (hope it's True).
Что понравилось
Очень радуют возможности шаблонизатора из-коробки Twig (ещё на хабре статейка). До этого я работал в основном только со Smarty, который тоже хорош, но чуть что-то более сложное и в нём приходится городить огород, чтобы реализовать. А Twig сильно больше наворочен — а значит мне удобен. Хотя чую, что шаблоны получаются более сложные, радующие программиста, но дизайнерам похоже с ним труднее работать.
Ещё конечно Doctrine. Тоже из-коробки :). Тут радости меньше, так-как чую, что это всё удобство даётся за счёт нехилого оверхеда, но пользоваться можно. Даже удобно, такой Enterprise-like код получается, как будто и не совсем РНР уже.
Как-то так:
/**
* Common Delete Offer action
* @param type $offerID
*/
private function _deleteOfferAction( $offerID ) {
$em = $this -> getDoctrine() -> getEntityManager();
$offer = $em -> getRepository( 'QR1000MainBundle:Offer' )
-> findOneById( $offerID );
if ( $offer ) {
$em -> remove( $offer );
$em -> flush();
}
}
Ещё по мелочи:
MVC по умолчанию как основа фреймворка используется везде и всегда.
Сладкая плюшка РНР начиная с версии 5.3 — пространства имён
Используются везде, где нужно, очень на мой взгляд грамотно.
Качественная официальная документация
Всегда актуальная и очень детальная информация — отличный плюс в пользу фреймворка. Явился для меня важным критерием при выборе.
Далее буду выкладывать некоторые вещи, которые мне показались не настолько прозрачными, чтобы с ними разобраться в лёт.
Как в .twig шаблоне найти подстроку в route или любой другой строке
Итак, возникла задача в twig шаблоне найти подстроку, всё оказалось просто..
Читать дальше
Особенности связывания сущностей
Итак возникает задача организовать отношение один-ко-многим для двух объектов в базе. В этой заметке расскажу как это делается в Symfony2 + Doctrine ORM. Неочевидные особенности синтаксиса и другая мелочёвка.
Читать дальше
Нехватка памяти при очистке кеша
Что можно сделать если при app/console cache:clear получаем Fatal error: Allowed memory size of XXX bytes exhausted
Читать дальше
Наверх