Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Правильная интеграция Doctrine в CodeIgniter

CodeIgniter
Здравствуйте, на днях занялся интеграцией популярного PHP-ORM Doctrine с не менее популярным PHP-фрэймворком CodeIgniter и обнаружил, что официальный способ интеграции, озвученный в кукбуке Doctrine и на вики CodeIgniter вызывает у меня, по меньшей мере, негодование.
Почему ?
Всего голосов 41: ↑36 и ↓5 +31
Просмотры4.9K
Комментарии 31

Полномасштабная разработка проекта

Разработка веб-сайтов
Чего-то сегодня не спится совершенно… Возможно это тот самый знак, которого я так долго ждал? А знак мне нужен был, что бы решиться начать серию статей на основе реальной разработки проекта средних масштабов. Но не просто разработке в общем смысле этого слова, и даже не о разработке на основе Zend Framework, Doctrine ORM и пр. и пр., а о разработке начиная с постановки задачи, анализа и проектирования (с необходимой степенью глубины), поиска решений и реализации.
И раз уж первый абзац уже набран, то смысла останавливаться не вижу :) Приглашаю всех поучаствовать в процессе, который будет проходить на основе UP.
Читать дальше →
Всего голосов 75: ↑55 и ↓20 +35
Просмотры1.3K
Комментарии 98

Тюнинг Zend Framework + Doctrine

Zend Framework

Скрещиваем двух «зверей»



В принципе, скрестить Zend Framework с Doctrine не так уж сложно. Но прежде поговорим о подготовительной работе. По мнению автора, предлагаемую по умолчанию структуру файлов проекта Zend Framework можно сделать чуть более оптимальной.

Так выглядит структура файлов проекта Zend Framework по умолчанию:

/
  application/
    default/
      controllers/
      layouts/
      models/
      views/
  html/
  library/

Читать дальше →
Всего голосов 44: ↑39 и ↓5 +34
Просмотры2.4K
Комментарии 29

Иерархические структуры данных и Doctrine

Разработка веб-сайтов

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →
Всего голосов 64: ↑63 и ↓1 +62
Просмотры68.3K
Комментарии 41

Немного о symfony с doctrine под Linux

Symfony
Начиная изучать symfony, первым делом посмотрел статьи на хабре. Есть переводы, в которых рассказано как сделать свой проект на symfony, где за основу взят sandbox. Мне интересно было разобраться, как установить и настроить symfony + doctrine имея только исходник фреймворка. Проект мне предстоит делать большой, поэтому в этой статье расскажу с чем мне удалось познакомиться.
Читать дальше →
Всего голосов 10: ↑4 и ↓6 -2
Просмотры1.5K
Комментарии 17

Движок микроблоггинга Reactor

Open source
image
Все началось с того, что мы решили сделать свой микроблоггинговый сервис. Покопались в интернетах в поисках более-менее подходящего готового движка микроблоггинга, толком ничего не нашли. Потом рассмотрели кандидатуру движков обычного блоггинга — Wordpress, LiveStreet, BigStreet. Мы уже немного работали с ними, и решили не использовать в виду их архитектурных недостатков (наше ИМХО). Оставалось сделать что-то свое, но не с нуля, а используя фреймворк Symfony в связке с ORM Doctrine.

Будем краткими.
# Что это? — Движок микроблоггинга с картинками и настроениями, альфа версия. Пример работы движка — http://joyreactor.ru/
Читать дальше →
Всего голосов 75: ↑56 и ↓19 +37
Просмотры7.3K
Комментарии 57

Страдания по CMF или Zend + Doctrine. Часть 1

Чулан
Попытки создания собственной системы начались довольно давно (думаю это всем знакомо). За последние пару лет была откатана схема на своей системе, но сама система благополучно почила в бозе. Если там были попытки как-то использовать Zend как компоненты, то в конце концов было принято решение не изобретать велосипед, а просто взять Zend за основу.
Zend — 1.8/Doctrine — 1.1 на момент написания.

Что было решено сохранить в системе из предыдущей версии
1) Мультисайтовость
2) Мультиязычность. Интернационализация производится за счет Zend и Doctrine.
3) Модульность. При этом создать модуль можно в самой системе, задав yaml схему и получив стандартные методы для работы с помощью контроллеров и автогенерированых форм (Zend_Form).
4) В создаваемых модулях по умолчанию присутствует поддержка i18n, versionable, timestampable.
Каждый сайт имеет режимы отображения — backend, frontend,etc. Модель — одна для всех. Основой для моделей выбрана Doctrine. Показалась очень удобной.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры273
Комментарии 10

ZendX_JQuery + jqGrid

Чулан
В продолжение темы о связке Zend/Doctrine.
Учитывая что потребуется решить вопрос о постраничном листинге данных из таблицы, было принято решение использовать jqGrid в качестве данного инструмента.
Причина выбора проста — на данный момент это один из наиболее мощных гридов, с хорошей документацией и тд.
Читать дальше →
Всего голосов 3: ↑1 и ↓2 -1
Просмотры789
Комментарии 1

Doctrine и сортировка для связи многие к одному

Doctrine ORM
Довольно давно использую связку Zend Framework и Doctrine и очень не хватало сортировки для коллекций получаемых по ссылке. Оказалось, что это легко реализовать.

Позже в одном из проектов, созданном компанией в которой я работаю, был найден подобный метод, но, увы, не ясно просочилось-ли это от разработчиков Doctrine или было создано в недрах моей команды. Смущает тот факт, что найденный фрагмент кода написан для СУБД, которая в нашей компании не используется.
Приступим?
Всего голосов 23: ↑19 и ↓4 +15
Просмотры2.1K
Комментарии 19

Интеграция Doctrine в kohana 3

Kohana
Здравствуйте,

После выхода Kohana 3 хочется ее использовать в новых проектах, и использование Doctrine показало, что инструмент очень удобный, потому поделюсь рецептом интеграции.
Читать дальше →
Всего голосов 27: ↑23 и ↓4 +19
Просмотры1.7K
Комментарии 36

Вот он какой, Doctrine 2.0 (Приурочено к релизу Doctrine 2.0 Alpha 3)

PHP
image
Поздравляю, коллеги! 3 дня назад увидела свет треться альфа-версия самого мощного на сегодняшний день ORM-фреймворка для PHP: Doctrine.

И эта новость по большему счету заслуживает внимания потому что в Doctrine 2.0 произошли очень существенные изменения в сравнении с предыдущими версиями. Сразу замечу, что вкусности эти потребуют от нас ни много ни мало — поддержку php 5.3.
Читать дальше →
Всего голосов 46: ↑39 и ↓7 +32
Просмотры1.9K
Комментарии 72

Doctrine, расширяем возможности любимого ORM-фреймворка! Часть 1.а (I18n, быстрый доступ к переводимым атрибутам)

Doctrine ORM
Я думаю многие со мной согласны, что Doctrine — один из самых мощных и удобных ORM для PHP, но с недавнего времени возможностей оного мне перестало хватать. Начнем с того что невозможно использовать ассоциации с условиями фильтрации, «волшебный» поиск с учетом перевода через I18n и много другого.

Всячески экпериментируя с возможностями Doctrine, я написал кучу нужных и ненужных расширений, которые и решил вывести «в мир». Тем самым и начинаю цикл статей, посвященных практическому написанию всяких упрощающих жизнь свистелок. В процессе я также постараюсь раскрыть методологию разработки, так что возможно наличие взаимоисключающих параграфов в течение статьи, но в итоге они разрешатся.

Начну с самого легкого — с расширения для мультиязычности Doctrine_Template_I18n. Оговорюсь сразу, текста будет много, как и много сумбурной технической информации
под катом
Всего голосов 29: ↑22 и ↓7 +15
Просмотры2.4K
Комментарии 12

Пагинация в Doctrine (Использование SQL_CALC_FOUND_ROWS)

Doctrine ORM
Начиная от версии 4.0 в СУБД MySQL появилась достаточно удобная возможность подсчета количества всех подходящих под запрос записей, когда количество записей ограничивается LIMIT’ом. При работе с поиском в БД, а так же при выборках из таблиц с большим количеством записей такой функционал просто необходим. В этой статье я расскажу, как можно использовать эту возможность в ORM Doctrine
и как же?
Всего голосов 14: ↑9 и ↓5 +4
Просмотры6.4K
Комментарии 8

Точные имена свойств модели в Doctrine

Doctrine ORM
Эта статья посвящена точному(с учётом регистра) отображению названий колонок таблицы БД в свойства модели. Данная проблема актуальна для 1ой ветки ORM, т.к. во второй ветке она похоже уже решена. Но т.к. стабильным релизом на данный момент является версия 1.2.1 а версия 2 в стадии ALPHA4, то думаю, что эта проблема актуальная для многих пользователей ORM.
Читать дальше
Всего голосов 4: ↑3 и ↓1 +2
Просмотры1.3K
Комментарии 5

Symfony Live 2010. День первый

Symfony
image

Вчера, 16 февраля прошел первый день двухдневной международной конференции Symfony Live 2010, посвященный, как не трудно догадаться, фреймворку Symfony: )

Это первая международная конференция, проводимая sensio labs.

Читать дальше →
Всего голосов 40: ↑34 и ↓6 +28
Просмотры971
Комментарии 44

Doctrine Behavior на примере собственного плагина

Symfony
Здравствуй, хабралюд.

Вступление


С выходом symfony 1.4 разработчики фреймворка фактически обязали нас использовать вместо привычного Propel, новую, мною неизведанную ORM Doctrine. Нет, конечно они не заставляют использовать Doctrine, при желании в 1.4 можно подключить и Propel, но как мне показалось — если разработчики такого масштаба сделали Doctrine по–умолчанию в своём фреймворке, то значит это говорит о большей пригодности нежели Propel. Я не стал противиться ещё по той причине, что просто напросто хотелось чего–нибудь нового и стал работать с Doctrine.

В связи с появившейся задачей, с желанием повысить собственную квалификацию и просто из интереса решил попробовать на себе, что такое Doctrine Behaviors, а полученным опытом поделиться с вами. Как писать плагины для symfony framework'a я уже рассказывал, на этот раз хотелось бы рассказать о написании плагина, который использует «Doctrine Behavior».
Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Просмотры114
Комментарии 36

Doctrine: Опыт работы с миграциями в symfony

Symfony
Для тех, кто не в курсе, миграции — это способ внесения изменений в структуру БД.
Управлять изменениями можно по-разному, но все сводится к работе инструкциями для изменения стуктуры.

Почему миграции это делают наилучшим способом:
1. Автоматизация. Вы можете хранить инструкции в sql-файликах, накатывать их при необходимости. Но это становится дико неудобно, когда встает вопрос о переключении между разными ревизиями (версиями БД), для командной разработки, когда всем разработчикам надо накатить изменения, для развертывания тестового окружения.
2. Rollback (как продолжение первого пункта). Мы можем откатить любую миграцию и получить версию БД на любой момент. Чем это удобно, см. ниже.
3. Идентичность DEV и PROD версий БД. Это очень важно, по крайней мере для меня, быть уверенным в том, что версии DEV, PROD и TEST абсолютно одинаковы. Да, этого можно добиться и другими способами. Но когда именно миграции являются носителями информации о структуре БД, вместе с автоматизацией решать эту задачу становится намного удобнее и проще.

Не буду описывать базовые вещи, можно посмотреть:
Далее - опыт, рекомендации, история и грабли при работе с миграциями
Всего голосов 19: ↑18 и ↓1 +17
Просмотры27.6K
Комментарии 27

Создание Doctrine YAML через MySQL Workbench

Doctrine ORM
Из песочницы
Недавно стал пользоваться программой MySQL Workbench. Приложение меня очень порадовало, в нем очень удобно проектировать структуру базы данных, которую затем можно легко экспортировать на сервер Баз Данных (Forward Engineering). Так же можно использовать обратную разработку (Reverse Engineering): создание ER диаграммы по существующей структуре Базы Данных. Кроме того, в приложении есть синхронизация модели и существующей БД, что тоже очень удобно при разработке.

Но так как мы разрабатываем наши продукты с использованием ORM Doctrine, то кроме структуры БД необходимо было создать модели для доступа к данным. Как оказалось, что для Workbench есть дополнение, которое создает Doctrine YAML сразу из приложения. Немного поискав в инете, плагин был успешно найден. Страница разработчика находится вот здесь.

Используя данный плагин очень удобно и быстро можно создавать схемы для будущих моделей.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры11.2K
Комментарии 15

Колекционируем данные или учим Doctrine делать multiple insert

Doctrine ORM
Интересная реализация для импорта данных в базу, так как можно вставлять данные в связанные таблицы. Автор тестировал код только на MySQL сервере и по его словах все работает на ура.
Вот собственно ссылка на статью

P.S. пишу топик, так как не хватает кармы чтобы сделать ссылку
Всего голосов 8: ↑6 и ↓2 +4
Просмотры2.5K
Комментарии 7

Использование Zend GData в Symfony2-проекте

Symfony


Ведущий разработчик фреймворка Symfony — Фабьен Потенсьер (Fabien Potencier) в 2009-м году выступил на Zend/PHP Conference с докладом о извлечении выгоды в совместном использовании Symfony 1.3/1.4 и Zend Framework. Основные тезисы его речи доступны в презентации, опубликованной на его персональном сайте [1].

Как известно, Symfony2 — это практически новый фреймворк, созданный с использованием новейших возможностей языка PHP. На данный момент разработка перешла в RC-цикл, и всё больше разработчиков, имеющих опыт работы на первой ветке Symfony (да и не только они), смотрят в сторону нового флагмана. Но, даже несмотря на значительное количество включенных в стандартное издание компонентов, Symfony2 не покрывает все нужды веб-разработчика, поэтому, рано или поздно, встает вопрос о подключении внешних библиотек.

Очевидно, что в этом свете объемный комплект библиотек Zend (Gdata, Search_Lucene, Pdf и т. д.) нельзя обойти стороной. В данном посте мной будет рассмотрен процесс интеграции Symfony2 и Zend на примере Zend Gdata — библиотеки для взаимодействия с Google Data API [2].

Читать дальше →
Всего голосов 22: ↑18 и ↓4 +14
Просмотры2.1K
Комментарии 10