Какой лучший способ использовать несколько классов PHP? - PullRequest
0 голосов
/ 19 октября 2011

Я искал на этом сайте похожие вопросы и нашел несколько полезных ресурсов, но кто-нибудь может мне помочь с этим ...

Я использую PDO для подключения к базе данных MySQL.Я хочу использовать классы и иметь общее представление о них.

Во-первых, правильно ли я поступаю, имея класс db, который заботится о соединении с базой данных?

Во-вторых, мне нужны другие классы (в отдельных файлах) для моих пользователей, сообщений, фотографий и т. Д. Моя проблема / вопрос в том, как эти классы могут совместно использовать соединение БД, которое уже установлено, и запрашивать базу данных ???

Я ценю любые отзывы и полезный код.

Спасибо

Ответы [ 3 ]

1 голос
/ 19 октября 2011

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

Class db {
   ...some code creading your pdo...
}

$db = new db();

Class page {
   function __construct(){
      global $db; //Tell this function to use the global version of $db
      ... you can now use the db connection in this function...
   }
}

$page = new page();

Пока класс db включен в тот же классpage (не всегда один и тот же файл, но одна и та же загрузка страницы с точки зрения зрителей), перед созданием объекта page () у вас будет $ db в глобальной области видимости.

1 голос
/ 19 октября 2011

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

0 голосов
/ 19 октября 2011

Вы должны просто использовать include_once("db_class");, чтобы добавить класс db к любому другому классу / файлу, который в этом нуждается, здесь вы устанавливаете другое соединение с базой данных каждый раз, когда класс включен. Если вы пытаетесь использовать одно соединение с базой данных, вам следует узнать о постоянных соединениях.

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