Не пытаясь спамить или рекламировать здесь, я ценю это сообщество и людей, которые с радостью отдают свое время, чтобы ответить на вопросы (как и я).Я создал библиотеку аутентификации для Codeigniter под названием WolfAuth.В настоящее время он использует DataMapper для всего взаимодействия с базой данных, до дальнейшего уведомления.
Каждая функция в настоящее время использует код в соответствии со следующими строками.
$u = new User;
$u->get_by_id($user_id);
if ( $u->exists() )
{
// Do user stuff here
}
Я не совсем уверен, как PHP обрабатываетсоздание объекта, но, безусловно, выполнение этого в 50 функциях и более не может быть полезным для производительности, а если нет, добавляет ненужное создание объекта.Возможно ли иметь глобальную реализацию каждого объекта модели DataMapper, который я использую и повторно использую в каждой функции?
Так что-то вроде следующего.
class Someclass {
protected $user;
protected $group;
protected $roles;
public function __construct()
{
$this->user = new User;
$this->group = new Group;
}
public function the_user($user_id)
{
$user = $this->user->get_by_id($user_id);
if ( $user->exists() )
{
echo "The user exists!";
}
}
}
Я просто чрезвычайнопридирчиво, или то, что я спрашиваю, возможно и возможно лучший способ сделать вещи для такой большой библиотеки, как я построил?