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


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

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

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

Author: Marek, 2010-08-24

3 answers

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

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

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

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

WordPress в дистрибутиве и исправлении SQL Server

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

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

 5
Author: hakre, 2010-08-24 15:50:29

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

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

 2
Author: Annika Backstrom, 2010-08-24 10:52:33

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

 0
Author: Marek, 2010-08-25 11:13:31