![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Хабрахабр: PHP / Блог / Захабренные/Записи в блоге |
![]() |
Хабрахабр: PHP / Блог / Захабренные
Голосов: 1 Адрес блога: http://habrahabr.ru/blog/php/ Добавлен: 2008-06-12 19:52:35 блограйдером ZaiSL |
Приведение к типам в Yii::app()->request
2012-08-17 11:49:58 (читать в оригинале)Всем привет!
Хочу поделиться с вами небольшим решением проблемы, с которой столкнулся при переносе части данных проекта в mongodb.
Изначально у нас использовалась только Mysql и все параметры приходящие от клиента вполне себе позволяли получать данные из базы без каких-либо проблем.
<?php
$id = Yii::app()->request->getParam('id', 0);
$data = Data::getForId($id);
?>
А суть в том, что для mysql нет разницы [select * from data where id = 1] или [select * from data where id = '1'].
Но mongodb типы данных различает, по этому нельзя найти запись используя условие id == '1' если id в mongodb является числом.
посмотреть решение
Мониторинг производительности PHP-кода с помощью Pinba
2012-08-16 13:14:44 (читать в оригинале)
Со временем число серверов будет расти, и рано или поздно вы зададитесь вопросами
«А что сейчас вообще происходит с системой? Как часто выполняется тот или иной скрипт и как долго? Какие операции занимают большую часть времени?» Системы мониторинга типа Zabbix дают лишь общую, поверхностную картину состояния приложения.
Чтобы получить ответы на эти вопросы, в Badoo был разработан сервиc мониторинга и статистики в реальном времени — Pinba. В данной статье мы расскажем о нашем опыте использования его для мониторинга и профайлинга нашей системы.
Читать дальше →
Тэги: badoo, performance, php, pinba, баду, блог, высокий, компания, мониторинг, производительность, профайлинг, статистика
Постоянная ссылка
Использование Composer для генерации автозагрузчика, поддерживающего legacy-код
2012-08-16 08:11:17 (читать в оригинале)В настоящий момент во многих проектах с богатым наследием код представляет собой смесь из различных подходов, от PHP 3 до PHP 5.
В PHP 3 мы использовали библиотеки функций, файлы подключения к базе данных, файлы переопределения настроек php.ini и так далее.
В PHP 4 и 5 мы создавали классы, именование файлов которых было сильно кастомизировано, от package/class.myclass.inc до Package/MyClass.php.
В эпоху PHP 5 мы получили стандарт PSR-0, описывающий стандарт именования файлов классов PHP для повышения совместимости их автозагрузки.
Код постепенно начал превращаться в не очень приятное месиво из require_once и spl_autoload_register. Прямо скажем, месиво не сильно управляемое и время от времени приводящее к фатальным ошибкам «функция не существует» или «класс не существует» при разработке нового кода.
И вот, внезапно к нам на помощь пришёл менеджер зависимостей Composer (github-репозиторий).
Хочу подчеркнуть, что Composer не является только лишь генератором автозагрузчика. Задачи, которые он выполняет намного более широки и интересны.
Давайте посмотрим, как мы можем применить Composer для генерации автозагрузчика для нашего legacy-кода.
Читать дальше →
Отчёт о неудачной попытке получить заявленную эффективность от prepared statements
2012-08-15 12:05:00 (читать в оригинале)Рассказывая в своей статье о типичных заблуждениях, связанных с защитой от SQL инъекций, среди прочих я отметил тот факт, что серверные подготовленные выражения не работают в PHP по заявленному эффективному сценарию — 1 раз prepare(), потом 1000 раз executе().
Ну, то есть, в теории-то они работают — в пределах одного запуска скрипта. Но много ли вы знаете скриптов (написанных профессиональными программистами), которые выполняют кучу одинаковых запросов? Вот я тоже не знаю. Повторяющихся запросов (каких-нибудь множественных апдейтов) — доли процента, а в массе своей запросы уникальные (в пределах одного скрипта).
Соответственно, для нашего уникального запроса сначала выполняется prepare(), потом — execute(), потом скрипт благополучно умирает, чтобы, запустившись для обработки следующего HTTP запроса, заново выполнять prepare()… Как-то не слишком похоже на оптимизацию. Скорее — наоборот.
Но неужели нет способа как-то закэшировать подготовленный запрос между запусками?
И тут меня осенила идея!
Тэги: connection, mysql, mysqli, persistent, php, prepared, statement, веб-разработка, выражение, подготовленный
Постоянная ссылка
[Из песочницы] Реализация паттерна Компоновщик (Composite pattern) на php
2012-08-14 17:15:08 (читать в оригинале)Введение
На определенной стадии изучения серверного программирования мне захотелось написать свой простенький фреймворк. Я рассчитывал, что это поможет более глубоко понять идеологию MVC и Zend Framework в частности. Когда дело дошло до части представления и генерации html я вспомнил о паттерне Компоновщик (Composite pattern). Возможно я несколько исказил его применение, но мысль пошла оттуда.
Читать дальше →



Категория «Фотографы»
Взлеты Топ 5
![]() | ||
+192 |
206 |
МАЛЕНЬКАЯ_ПОНИ |
+153 |
207 |
Velimira |
+153 |
213 |
Little Showroom |
+152 |
209 |
Свадебный фотограф Петербург, Тайланд, Куба, острова |
+149 |
208 |
ROMAHA.SU |
Падения Топ 5
![]() | ||
-1 |
74 |
Фотоблог на ТеМу... |
-1 |
25 |
White trash beautiful. |
-1 |
5 |
Blue_cat |
-1 |
18 |
Журнал Интервальщика |
-2 |
28 |
MODRA_NEST |

Популярные за сутки
Загрузка...

BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.