PDO с Drupal 7?

Я не хочу использовать правила drupal db_. Я бы предпочел использовать свои собственные методы pdo для запросов и обновлений баз данных и т. Д. Но мне удалось заставить работать pdo, единственная проблема заключается в том, что у меня есть Чтобы использовать соединение на каждой пользовательской странице, некоторые пользователи в моем сообществе могут редактировать страницы и видеть информацию о соединении. require & require_once не работает.

Кто-нибудь еще имел эту проблему и знает, как ее избежать?

2 ответа

Решение

Вы можете создать свой собственный модуль и использовать хук инициализации:

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_init/7

function yourmodulename_init() {
  // This code will be executed on every page
}

Однако вы должны попытаться использовать механику базы данных drupal, так как она поставляется с множеством лучших практик и мощных инструментов. Например, интеграция просмотров:

https://api.drupal.org/api/views/views.api.php/function/hook_views_data/7

В Drupal 7, Database::getConnection позволяет получить DatabaseConnection объекты для всех настроенных баз данных. А также DatabaseConnection продолжается PDO так что если вы действительно хотите обойти API базы данных Drupal (который сам основан на PDO и либо повторно использует, либо расширяет классы PDO повсюду), вы можете использовать его так же, как свой собственный PDO объект.

Но если пользователи вашего сообщества могут редактировать вашу пользовательскую страницу, я предполагаю, что вы на самом деле встраиваете PHP-код в узлы Drupal, используя PHP-фильтр. Что само по себе очень плохая идея (хуже, чем игнорирование API базы данных Drupal). Вместо этого вам следует подумать о написании пользовательских модулей с учетом ваших потребностей.

Другие вопросы по тегам