it-swarm-ru.tech

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

WordPress, несомненно, очень настраиваемый, используя плагины, но каждая возможность настройки, безусловно, имеет ограничения, определенные базовой архитектурой.

Для тех, кто знаком с архитектурой WP и ​​исходным кодом:

Какие усилия потребуются для настройки слоя данных, используемого WP, для использования другого хранилища данных (например, файлов (или другой системы баз данных) вместо MySQL?). Является ли архитектура WordPress многоуровневой в смысле возможности переключения слоев? Уровень пользовательского интерфейса, по-видимому, очень легко переключать (любая тема делает это), но как насчет других уровней, а именно уровня данных?

4
Marek

Wordpress не предназначен для сменного слоя базы данных. Информатика имеет несколько различных концепций для работы с разными базами данных в одном и том же приложении на разных уровнях абстракции, Wordpress не склонен использовать какой-либо из них. Чтобы сказать это более простыми словами: совсем нет.

Но WordPress предлагает возможность заменить свой собственный код другим кодом, например, целым классом базы данных. Этого не всегда (читай: обычно) достаточно, чтобы заменить весь слой базы данных, но это помогает возиться. Например, класс WPDB, заменяющий HyperDB , не добавляет новый слой базы данных полностью, а обрабатывает несколько серверов MySQL вместо одного, что является хорошо известным примером. (это считается плохой практикой для PHP, есть лучшие способы , но это хороший пример того, что можно сделать).

Помимо замены класса базы данных, Wordpress обладает способностью , что позволяет заменить еще больше кода, и вы можете полностью изменить его, например, создание собственного дистрибутива, который сам позаботится обо всем, что касается слоя базы данных.

Если вы хотите увидеть реальный пример того, как заменить весь слой базы данных, чтобы WordPress использовал сервер баз данных совершенно другого типа (здесь: MSSQL вместо жестко закодированного MySQL), вы найдете полный дистрибутив и патч здесь. :

WordPress в SQL Server Distro & Patch

Это бесплатное программное обеспечение, которое вы можете изучить, как такой слой базы данных может быть реализован, веб-сайт также предоставляет дополнительную информацию по этой теме.

Совет: не боритесь с Wordpress. Придерживайтесь MySQL и все. В противном случае ищите что-то еще лучше разработанное, чтобы соответствовать вашим потребностям. Просто возьмите правильный инструмент для работы.

5
hakre

Это возможно: см. HyperDB замену wpdb. HyperDB добавляет разделение и репликацию в WordPress. Разделение работает путем подключения к нескольким базам данных и использования имени таблицы, чтобы определить, какая база данных должна выполнить запрос.

В конце концов, $wpdb просто получает запрос SQL, и он может свободно делать то, что хочет, с данными в этом запросе. HyperDB запрашивает MySQL точно так же, как исходный класс wpdb. Распространение этого на разные базы данных потребует изменения любых несоответствующих запросов до их выполнения. Если ваше хранилище данных вообще не принимает SQL, вам придется преобразовать входящий запрос в любой другой API, который вы используете. Все возможно с достаточным количеством времени и усилий, но для меня это звучит довольно жалко. ;)

2
Annika Backstrom

Только что нашел эту страницу Кодекса , которая хорошо ее подытоживает, включая обзор решений, предложенных и/или запланированных людьми, разрабатывающими WordPress. Посмотрим, как получится.

0
Marek