Статьи в категории Doctrine

Троичная логика (ternary logic) в Doctrine ORM

// Июль 7th, 2011 // 2 Comments » // Doctrine

В этой статье речь пойдет о третичной логике. Я не буду говорить об операциях в троичной логике, а коснусь лишь вопросов хранения данных в Doctrine. (далее…)

Share

Взаимная блокировка транзакций БД. Как решать проблему?

// Март 21st, 2011 // No Comments » // Doctrine, Highload, MySQL

В данной статье описывается решение проблемы взаимных блокировок транзакций БД, когда одна транзакция блокирует данные и не дает запуститься другой. (далее…)

Share

Новый подход к тестированию Zend Framework/Doctrine приложения: пусть тестируют пользователи!

// Февраль 9th, 2011 // 4 Comments » // Doctrine, PHP, Ubuntu, Веб-разработка

Когда проект растет, то, как правило, растет и его кодовая база, количество модулей, да и число программистов, вовлечённых в проект. Постепенно от закачки файлов по ftp (если такое было :-) команда переходит к Subversion/Git репозитарию, тикет-системам и начинает использовать инструменты для увеличения производительности совместной работы. (далее…)

Share

Сложный код, плавающие баги и инсайт

// Февраль 7th, 2011 // 2 Comments » // Doctrine, PHP, Веб-разработка

Мы три дня ловили баг. Есть такая противная категория ошибок — плавающие баги.  Гейзенбаг (англ. Heisenbug) — термин, используемый в программировании для описания программной ошибки, которая исчезает или меняет свои свойства при попытке её обнаружения. Это слово, в отличие от слова «баг», в русском языке практически не используется. Не полностью идентичный, но достаточно близкий по значению русскоязычный термин — «плавающая ошибка». Примером могут являться ошибки, которые проявляются в окончательном варианте программы (релизе), однако не видны в режиме отладки, или ошибки синхронизации в многопоточном приложении. (далее…)

Share

Решение проблемы «mysqlnd cannot connect to MySQL 4.1+ using old authentication» для PHP 5.3

// Декабрь 17th, 2010 // 11 Comments » // Doctrine, MySQL

После обновления сервера БД на Percona Server 5.1.52-rel12.3 с удивлением обнаружил, что перестал коннектиться PhpMyAdmin, а также все веб-приложения на PHP. WTF?

(далее…)

Share

Автоинкрементные ключи и хранение сессий в БД

// Декабрь 11th, 2010 // 1 Comment » // Doctrine, MySQL, PHP, Веб-разработка

Вчера разбирался с интересным багом с Zend_Session_Storage_DbTable. Хотя в конце выяснилось, что он то тут и не причем :-)

(далее…)

Share

DQL to Raw SQL

// Декабрь 3rd, 2010 // 10 Comments » // Doctrine, MySQL, PHP

Я довольно давно работаю с Doctrine ORM, и очень часто при отладке необходимо посмотреть, какой именно SQL запрос получается из DQL запроса. Для этого раньше я использовал $dql->getSqlQuery() вместе с $dql->getParams(). Первая команда отображает SQL-запрос плейсхолдерами («?») вместо переменных, а вторая собственно отображает массив переменных. Приходится смотреть туда-сюда, чтобы сопоставить их. Ладно если запрос маленький, а если большой — то это быстро утомляет. (далее…)

Share

Оптимизация mysql

// Ноябрь 25th, 2010 // 5 Comments » // Doctrine, Memcached, MySQL, Веб-разработка

В этой статье я хотел бы рассказать о приемах оптимизации MySQL. Многие из них очевидны, другие довольно необычны, но большей частью они тривиальны.

(далее…)

Share

Ruby VS PHP, Rails VS Zend Framework

// Ноябрь 8th, 2010 // 8 Comments » // Doctrine, Highload, PHP, Ruby, Ruby on Rails, Zend Framework, Веб-разработка

Итак, в предыдущей заметке мы создали наше первое приложение. Какие выводы можно из этого сделать? Предлагаю обсуждение, что лучше для веб-разработки Ruby on Rails или Zend Framework. Понимаю, что из этого может вырасти холивар, но мне интересны конкретные аспекты этих фреймворков. И да, будем сравнивать правильно язык с языком (Ruby VS PHP), фреймфорк с фреймворком (Rails VS Zend Framework). Полагаю что результаты можно будет экстраполировать и на другие PHP -фреймворки (Symfony, Koxana, CodeIgniter).

(далее…)

Share

Сессии в БД и SET NAMES utf8 в Zend Framework

// Октябрь 13th, 2010 // No Comments » // Doctrine, MySQL, PHP, Zend Framework, Веб-разработка

Zend Framework очень хорош, на нём удобно строить большие системы, но уж очень он неповоротлив. У нас в системе есть несколько утилит, который вызываются через AJAX-запрос после загрузки страницы и делают что-нибудь полезное. Например, есть утилита которая подгружает варианты автодополнения при поиске по сайту, еще есть утилита, которая обновляет статусы пользователей (онлайн-офлайн) на странице. Вот с последней сегодня приключилась большая проблема. (далее…)

Share