Как я могу получить доступ к соединению PDO из другого файла? - PullRequest
1 голос
/ 02 декабря 2011

Как я могу получить доступ к соединению PDO (к mysql) в моих методах класса из отдельного файла, не переписывая новый PDO () каждый раз, когда мне нужно соединение? И без использования шаблона синглтона - который, по-видимому, осуждается?

редактирование: В прошлом я создал класс базы данных, и в этом классе ему был назначен атрибут $ connection для подключения через mysql_connect в методе __construct. В том же файле я бы создал экземпляр класса, чтобы он был готов к работе. Затем, когда бы мне ни понадобилось это соединение, я просто запрашивал этот файл базы данных и добавлял глобальное $ connection в метод, который требует $ connection. Я просто не могу найти надежный способ сделать это с помощью нового PDO ($ dsn, $ user, $ password);

1 Ответ

1 голос
/ 02 декабря 2011

Лучше всего хранить его в переменной, доступной по всему миру.

Традиционно вы бы сохраняли переменную в пространстве имен global, хотя сейчас это хмурится .

Вместо использования singleton вам следует поместить объект в registry, например Zend_Registry.

Проще говоря, вам просто нужно создать класс с двумя статическими членами; set($key, $value) и get($key). Когда вы создаете свой объект PDO, просто позвоните set('db', $pdoConnection), чтобы сохранить его, а когда вам нужно получить доступ к базе данных, позвоните get('db').

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