можно ли переключить слой данных в wordpress?

<p>wordpress, несомненно, очень настраиваемый, используя плагины, но каждая возможность настройки, безусловно, имеет ограничения, определенные базовой архитектурой.</p><p>для тех, кто знаком с архитектурой wp и исходным кодом:</p><p>какие усилия потребуются для настройки слоя данных, используемого wp, для использования другого хранилища данных (например, файлов (или другой системы баз данных) вместо mysql?). является ли архитектура wordpress многоуровневой в смысле возможности переключения слоев? уровень пользовательского интерфейса, по-видимому, очень легко переключать (любая тема делает это), но как насчет других уровней, а именно уровня данных?</p>

<p>wordpress <strong> не </strong> предназначен для сменного слоя базы данных. информатика имеет несколько различных концепций для работы с разными базами данных в одном и том же приложении на разных уровнях абстракции, wordpress не склонен использовать какой-либо из них. чтобы сказать это более простыми словами: совсем нет.</p><p>но wordpress предлагает возможность заменить свой собственный код другим кодом, например, целым классом базы данных. этого не всегда (читай: обычно) достаточно, чтобы заменить весь слой базы данных, но это помогает возиться. например, класс wpdb, заменяющий <a href="http://wordpress.org/extend/plugins/hyperdb/">hyperdb</a> , не добавляет новый слой базы данных полностью, а обрабатывает несколько серверов mysql вместо одного, что является хорошо известным примером. (это считается плохой практикой для php, <a href="http://forums.mysql.com/read.php?144,143453,143453">есть лучшие способы</a> , но это хороший пример того, что можно сделать).</p><p>помимо замены класса базы данных, wordpress обладает способностью <em> </em>, что позволяет заменить еще больше кода, и вы можете полностью изменить его, например, создание собственного дистрибутива, который сам позаботится обо всем, что касается слоя базы данных.</p><p>если вы хотите увидеть реальный пример того, как заменить весь слой базы данных, чтобы wordpress использовал сервер баз данных совершенно другого типа (здесь: mssql вместо жестко закодированного mysql), вы найдете полный дистрибутив и патч здесь. :</p><p> <a href="http://wordpress.visitmix.com/download"><strong> wordpress в sql server distro & patch </strong></a> </p><p>это бесплатное программное обеспечение, которое вы можете изучить, как такой слой базы данных может быть реализован, веб-сайт также предоставляет дополнительную информацию по этой теме.</p><p>совет: не боритесь с wordpress. придерживайтесь mysql и все. в противном случае ищите что-то еще лучше разработанное, чтобы соответствовать вашим потребностям. просто возьмите правильный инструмент для работы.</p>

<p>это возможно: см. <a href="http://codex.wordpress.org/hyperdb">hyperdb</a> замену <code>wpdb</code>. hyperdb добавляет разделение и репликацию в wordpress. разделение работает путем подключения к нескольким базам данных и использования имени таблицы, чтобы определить, какая база данных должна выполнить запрос.</p><p>в конце концов, <code>$wpdb</code> просто получает запрос sql, и он может свободно делать то, что хочет, с данными в этом запросе. hyperdb запрашивает mysql точно так же, как исходный класс <code>wpdb</code>. распространение этого на разные базы данных потребует изменения любых несоответствующих запросов до их выполнения. если ваше хранилище данных вообще не принимает sql, вам придется преобразовать входящий запрос в любой другой api, который вы используете. все возможно с достаточным количеством времени и усилий, но для меня это звучит довольно жалко. ;)</p>

<p>только что нашел <a href="http://codex.wordpress.org/using\_alternative\_databases">эту страницу кодекса</a> , которая хорошо ее подытоживает, включая обзор решений, предложенных и/или запланированных людьми, разрабатывающими wordpress. посмотрим, как получится.</p>