MODX. xPDO, сравнение с PDO и PHP
Отредактировано: 02 Мая 2018
Основные различия
XPDO — это расширенная версия языка PDO. Зачастую он съедает в 2 раза больше ресурсов сервера, но, за счет того что подходит сразу для нескольких типов баз данных. Для лучшего понимания:
Метод PHP
mysql_connect('localhost','root','rootpassword');
mysql_select_db('modx');
$sql = "SELECT * FROM `modx_site_content` WHERE id > 0 LIMIT 100";
$res = mysql_query($sql);
$arr = array();
while ($row = mysql_fetch_assoc($res)) {
$arr[] = $row;
}
getStatus('Выборка '.count($arr).' ресурсов стандартными функциями Mysql');
Достоинства: самый быстрый способ общения с базой.
Недостатки: при использовании таких запросов к базе можно пропустить необходимые методы защиты, и конструкцию будет проще взломать.
Метод PDO
$sql = "SELECT * FROM {$modx->getTableName('modResource')} WHERE id > ? LIMIT 100";
$q = $modx->prepare($sql);
$q->execute(array(0));
$arr = $q->fetchAll(PDO::FETCH_ASSOC);
getStatus('Выборка '.count($arr).' ресурсов через PDO');
Достоинства: код простой, удобный, многие уязвимости ликвидированы;
Недостатки: код написанный для MySQL может не работать для MsSQL, из-за разницы в деталях;
Метод xPDO
$q = $modx->newQuery('modResource');
$q->where(array('id:>' => 0));
$q->limit('100');
if ($q->prepare() && $q->stmt->execute()) {
$arr = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
}
getStatus('Выборка '.count($arr).' ресурсов через xPDO');
Достоинства: поддерживается несколько типов баз данных; в некоторых случаях количество кода значительно меньше.
Недостатки: предварительно нужно загрузить модель данных; запрос обрабатывается дольше, иногда намного дольше.
Муки выбора, итог
В MODX можно использовать все 3 варианта, но, когда и что лучше выбрать?
PHP — вариант для мазохистов заточенных под максимальное ускорение базы.
PDO — удобен в случае если надо делать небольшие выборки, или если данные просто отображаются на сайте, без каких-либо действий над объектами. Естественно в небольших проектах, где все будет устроено на одном типе баз данных.
xPDO — удобен при необходимости внесения каких-либо изменений в базу данных, и при возможной работе с различными типами баз данных.
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.