Pull to refresh

Symfony 2 и Doctrine 2

Symfony *
Продолжая изучать Symfony 2 я решил описать использование фреймворка в связке с Doctrine 2, так как это один из самых часто задаваемых вопросов. И стоит заметить Doctrine 2 так же претерпел серьезные изменения в сравнении с веткой 1.x. Сам по себе проект Doctrine настолько большой, что описание его потянет пожалуй на небольшую, но интересную книгу. Поэтому я лишь очень бегло опишу пример использования Doctrine 2 в Symfony 2, позволяющий разобраться как запустить эту связку и сделаю это на примере очень меленького и простого приложения.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Views 37K
Comments 12

Интеграция Doctrine2 и ZendFramework

Zend Framework *
Время не стоит на месте, и надо бежать за временем.
Вот уже и ZF2 на подходе. Выпущен первый milestone. Zend Framework 2.0.0dev1 Release. Doctrine2 BETA3 — был в пятницу.
А хороший программист никогда не стоит на месте — времени нету. Отстанет и вперёд — делай таблицы — «Code for the Food».

Дело было вечером делать было нечего…

Скачав исходные коды библиотек начали играться. Цель — получить возможность создание моделей сохраняя структуру ZF и работать через подключение Doctrine2.
Для начала нам нужно поместить в include_path классы, которые являются частью Doctrine2.

library/Doctrine
libray/Symfony


Symfony нужно будет, что бы использовать инструмент из коробки для работы Doctrine2 (два компонента Console и Yaml).
В configs/application.ini прописываем данные для авто загрузчика.
autoloadernamespaces.doctrine = "Doctrine"
autoloadernamespaces.symfony = "Symfony"


Продолжение под катом. Какие опции нужно прописать в application.ini. Как подключить Doctrine2, исходный код ресурс плагина.
Читать дальше →
Total votes 37: ↑27 and ↓10 +17
Views 4.5K
Comments 26

Пагинация в Doctrine — считаем количество записей с помощью SQL_CALC_FOUND_ROWS (MySQL)

Doctrine ORM *
Sandbox

Предыстория


Не так давно, в связи с производственной необходимостью, я познакомился с замечательным фреймворком Symfony 2, в котором для работы с базой данных используется мощная популярная библиотека — Doctrine 2, включающая в себя два компонента: ORM (Object relational mapper) и DBAL (Database Abstraction Layer). ORM предоставляет приложению возможность общаться с базой данных на языке объектов, а DBAL, в свою очередь, представляет собой более низкоуровневый способ доступа к данным посредством написания запросов, основанный на php-библиотеке PDO. ORM предоставляет множество преимуществ при разработке сложных бизнес-приложений, но в то же время налагает и ряд ограничений, связанных с тем, что разработчику не приходится писать непосредственно SQL-запросы — ORM Doctrine предлагает свой собственный, объектно-ориентированный язык запросов, который преобразуется в привычный SQL уже за кадром. С одним из таких ограничений я и столкнулся, и хочу поделиться, каким образом я его успешно преодолел. Речь пойдёт о получении общего количества записей, возвращаемых запросом, если убрать из него ограничение LIMIT.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 13K
Comments 5

Кастомные аннотации в Symfony 2

Symfony *
Symfony2 — это веб-фреймворк, который появился совсем недавно. Соответственно, разработчики просто не успели написать к нему стоящую документацию. В одном из текущих проектов используется MongoDB, и ACL прикрутить нему можно, нужно всего лишь написать свой ACL-провайдер. Но я решил пойти своим путём. Итак, вот что примерно у нас получится:
class DefaultController extends Controller
{

    /**
    * Dashboard page.
    * @Permissions(perm="dashboard_view")
    * @Route("/", name="ITEDashboardBundle_index")
    * @Template()
    * @return array
    */
    public function indexAction()
    {.......

Читать дальше →
Total votes 37: ↑28 and ↓9 +19
Views 11K
Comments 34

UNIX_TIMESTAMP, ROUND и другие DQL запросы через queryBuilder в Symfony 2

PHP *Symfony *Doctrine ORM *
Tutorial
Как известно у Symfony 2 в Doctrine 2 из «коробки» нет поддержки некоторых стандартных функций Mysql, таких как UNIX_TIMESTAMP или ROUND и еще несколько других. В первую очередь статья для того чтобы понять как дополнять DQL своими функциями. Но перед написанием как следует «похабрить» и по «гитхабить», а вдруг уже кто-то написал, советую не городить велосипеды и воспользоваться уже готовыми наработками, например GitHub MysqlDoctrineFunctions.

Статья больше подходит для новичков.
Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Views 6.1K
Comments 0

Джентльменский набор Doctrine 2 для Symfony 3.3.6: Создание сущности, ассоциации и рекурсивные связи

PHP *Symfony *Doctrine ORM *
Tutorial


Доброго дня, читатель!

Что мы будем делать с вами по ходу чтения статьи


  • Создадим простые сущности
  • Немного поговорим об ORM аннотациях
  • Реализуем ассоциации:
    1. Двунаправленные связи Один к Одному
    2. Двунаправленные связи Один ко Многим
    3. Двунаправленные связи Многие ко Многим
    4. Рекурсивные связи

  • Поиграемся этими сущностями с помощью фикстур

Читать дальше →
Rating 0
Views 17K
Comments 8