We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 41053
    • 11 Posts
    Искал добросовестно, но так и не нашел ответа на следующие вопросы.

    1. Есть ли поддержка PHP MySQLi в Evo.
    2. Есть ли поддержка PHP MySQLi в Revo.

    Как-то не очень радует перспектива полного перехода при работе с БД на PDO (для Evo) и на xPDO (для Revo). В новых версиях PHP больше не будет поддержки MySQL, как известно, а я как-то к ней привык, много чего наработано на mysql_ функциях. На mysqli_ все это перевести наверное можно, но вот переводить все полностью на PDO как-то не вдохновляет.

    Просветите, кто знает... какие могут быть выходы для такой ситуации.
      • 31246 ☆ A M B ☆
      • 428 Posts
      Как-то не очень радует перспектива полного перехода при работе с БД на PDO (для Evo) и на xPDO (для Revo).
      А чем вас не угодил xPDO? Может проблема в изучении?, так как в Рево с прямыми запросами вы далеко не уедете (если вы не фанат профи работы с БД)
      Приведу маленький присер xPDO, а вы его для себы переведите в запрос MySQL
      $q = $modx->newQuery('Hotels');
      
      $q->select(array('Hotels.id',
      'Hotels.prop_number',
      'Hotels.personen',
      'Hotels.room',
      'Hotels.bedroom',
      'Hotels.star_reting',
      'Hotels.nights',
      'Hotels.country',
      'Hotels.region',
      'Hotels.town',
      'Hotels.name',
      'Hotels.alias',
      'Hotels.home_img',
      'Hotels.uri',
      'Hotels.furnishing',
      'Hotels.price',
      'Hotels.country'
      'Region.title AS reg_title',
      'Town.title AS town_title'
      'Type.name AS type'
      ));
      $q->leftJoin('HotelsRegion','Region');
      $q->leftJoin('HotelsTown','Town');
      $q->leftJoin('HotelsType','Type');
      
      $q->sortby($sortby,$sortdir);
      $q->limit($limit, $offset);
      $q->prepare();
      $q->stmt->execute();
      $res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

      Для меня куда ещё логичнее.

      Искал добросовестно, но так и не нашел ответа
      http://develop.modx.com/develop/revolution/requirements/
      Ответ на ваш вопрос - https://forums.modx.com/thread?thread=5373
        Valentin Rasulov - Industrial design (Hobbies - Web Development)
        Development not standard projects on CMF MODx Revolution.
        Small sample of extensions
        • 41053
        • 11 Posts
        >...так как в Рево с прямыми запросами вы далеко не уедете (если вы не фанат профи работы с БД)

        Нет проблемы - освоить хPDO. С PDO я нормально работаю.

        Рево для малых сайтов тяжеловат, Ево - гораздо проще и легче, и требует меньше ресурсов.
        На Ево можно свободно работать с PDO и с MySQLi - кому как нравится. Я, для проверки, один свой сниппет выборки данных из БД в Ево перевел на MySQLi - все работает. Да и Рево на MySQLi должен работать.

        Вопрос не в том что лучше, что хуже - PDO, xPDO или MySQLi. В определенных случаях прямые SQL-запросы работают лучше и быстрее разных AR/ORM надстроек.

        Просто хочется иметь возможность работать и с PDO, и с xPDO и с MySQLi - это все элементарно доступно как расширения PHP MySQL API.

        Другой вопрос, что ядро Ево на MySQL (не все, там есть и PDO, но определенные скрипты). Вот эти-то скрипты ядра и надо бы переписать на MySQLi, чтобы Ево могла жить дальше, после того как PHP MySQL уйдет из новых версий PHP.

        А переписывать ядро Ево на PDO гораздо труднее, чем на MySQLi.

        PDO и xPDO - вещи очень хорошие для своих целей... плохо только, если они станут единственно возможным выбором, без альтернативы в виде MySQLi.
        [ed. note: sadex13 last edited this post 14 years, 2 months ago.]
          • 31246 ☆ A M B ☆
          • 428 Posts
          Ну, в Рево (я говорю за Рево, так как в Ево не работал, тем более через год потдержки Ево от MODX не будет), во первых начиная с версии 2.2 есть поддержка репликаций. В кратце

          • Поддержка нескольких подключений с помощью xPDO
          • Автоматическое переключение между подключенными базами
          • Лёгкое редактирование конфиг файла MODx
          т.е. для своих проектов вы можете с лёгкостью работать как с PDO так и с MySQLi, да и вообще есть в xPDO так-же "сырые запросы" в БД
          Пример
          $sql = "SELECT * FROM {$modx->getTableName('modResource')} WHERE `id` > 0 LIMIT 1000";
          $q = new xPDOCriteria($modx, $sql);
          $res = $modx->getCollection('modResource', $q);

          или так
          $sql = "SELECT * FROM {$modx->getTableName('modResource')} WHERE `id` > 0 LIMIT 1000";
          $q = $modx->prepare($sql);
          $q->execute();
          $res = $q->fetchAll(PDO::FETCH_ASSOC);

          т.е. через xPDO и PDO...

          не думаю, что разработчики MODx об этом не подумают и не примут меры.
            Valentin Rasulov - Industrial design (Hobbies - Web Development)
            Development not standard projects on CMF MODx Revolution.
            Small sample of extensions
            • 41053
            • 11 Posts
            >тем более через год потдержки Ево от MODX не будет...
            Это они зря. Как минимум должно быть два варианта CMS - легкая и быстрая и мощная и полнофункциональная. Малых и средних сайтов в интернете процентов 90 от общего числа, их на мощной Рево делать, имхо, нерационально, и без Ево MODx сильно потеряет в популярности.

            >т.е. для своих проектов вы можете с лёгкостью работать как с PDO так и с MySQLi,
            Да, это ведь есть в PHP APIs MySQL, значит и в Revo это может быть доступно.

            > да и вообще есть в xPDO так-же "сырые запросы" в БД
            Код более-менее приятный, но как-то не верится что в xPDO модно напрямую работать с таблицами БД. Я не знаю xPDO, только бегло просматривал куски описания его работы. Насторожила одна вещь - схема БД, которая должна перестраиваться заново при изменении структуры БД. Может, это уже по другому.

            Ни в коем случае не рассматриваю MySQLi для использования ВМЕСТО PDO и xPDO, но для совместного использования, в определенных случаях. В то же время рассматривать xPDO вместо всего остального во всех случаях жизни имхо, тоже неверно.

            Насколько хорошо xPDO я оценить не могу сейчас, надеюсь, не хуже PDO, а PDO вешь весьма удобная. [ed. note: sadex13 last edited this post 14 years, 2 months ago.]
              • 41053
              • 11 Posts
              >т.е. для своих проектов вы можете с лёгкостью работать (прим. в Рево) как с PDO так и с MySQLi.

              Это означает, что многие старые хорошие модули, сниппеты, плагины и вообще любые старые хорошие php-скрипты со старыми процедурами mysql_* можно относительно легко перевести в mysqli_* (или в PDO, но здесь придется только вручную все делать) и использовать их в Рево.

              Тем более, что есть штатный перекодировщик процедур mysql_* в mysqli_* в PHP-скриптах от разработчиков и поддержки СУБД MySQL.

              Не сразу эта мысль пришла в голову.