powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP, как можно автоматически внедрить метод в класс?
8 сообщений из 8, страница 1 из 1
PHP, как можно автоматически внедрить метод в класс?
    #38897046
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня такой фрагмент кода (приватный метод), который я добавляю в классы:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
private function _store($var, $value=null, $unset=null)
{
  static $store;
  if (!isset($store)) $store = array();
  if (!array_key_exists($var, $store)) $store[$var] = null;
  if (isset($value) || isset($unset)) $store[$var] = $value;
  if (isset($unset)) unset($store[$var]);
  if (!isset($unset)) return $store[$var];
}


Использую его, чтобы приватные данные были видны снаружи, для сохранения использую $this->_store('password','123'), для чтения использую $this->_store('password').
Сейчас этот метод я просто пишу в каждом классе, в котором такое требуется.
Я бы хотел сделать так, чтобы этот метод был автоматически доступен в каждом классе.
Что-то вроде class MyClass1 implements IPrivateStore, только в интерфейсах реализацию не делают. Но синтаксически интерфейс выглядит самым удобным.
Можно конечно создать класс BaseClass, реализовать в нем этот метод и все остальные классы наследовать от него.
Но мне почему-то это не кажется лучшим решением.
Может быть есть другие способы, как этот метод внедрить во все классы?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897065
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897084
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alibek B.,
Или наследование или делегирование.
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897093
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИспользую его, чтобы приватные данные были видны снаружи,

__get
__set
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897174
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyИли наследование или делегирование.
А делегирование это как?

ScareCrow , я опечатался, « Использую его, чтобы приватные данные НЕ были видны снаружи ».
Мне нужно скрыть эти данные из дампа (var_dump или print_r).
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897177
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то так... http://php.net/manual/ru/language.oop5.traits.php
Любопытно. Похоже на то, что мне нужно.
Я правда пока не разобрался, как этим пользоваться.
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897202
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то так... http://php.net/manual/ru/language.oop5.traits.php
Да, самое то.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
trait PrivateStore
{
        private function _store($name, $value=null, $unset=null)
        {
                static $store;
                if (!isset($store)) $store = array();
                if (!array_key_exists($name, $store)) $store[$name] = null;
                if (isset($value) || isset($unset)) $store[$name] = $value;
                if (isset($unset)) unset($store[$name]);
                if (!isset($unset)) return $store[$name];
        }
}

class MyClass
{
        use PrivateStore;
        public $username;
        public function __construct($username, $password)
        {
                $this->username = $username;
                $this->_store('pass', $password);
        }
        public function login()
        {
                $password = $this->_store('pass');
                ...
        }

}
...
Рейтинг: 0 / 0
PHP, как можно автоматически внедрить метод в класс?
    #38897495
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
очередной геморой на пустом месте
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP, как можно автоматически внедрить метод в класс?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]