powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Создание класса, набор свойств которого динамически берётся из БД
8 сообщений из 8, страница 1 из 1
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37536094
CraC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходная ситуация:
Есть некий не слишком простой сайт, в котором параметры конфигурации задаются как свойства класса _config_, следующим образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 class  _config_
{
	 public  static $db_socket	=  null ;
	 public  static $db_server	= 'localhost';
	 public  static $db_port		= '3306';
	 public  static $db_username	= 'user';
	 public  static $db_password	= 'password';
	 public  static $db_database	= 'db_name';

	// ещё много чего
}

Задача:
С целью упрощения работы с конфигурацией, например, в части адресов электронной почты для всяких уведомлений, решено хранить часть этих параметров в БД, имея возможность из CMS (свой велосипед, но здесь это не важно) изменять их значения. Если возникнет необходимость добавить новый параметр конфигурации, его будет логичнее вписать только в БД, не дублируя больше нигде.

Проблема:
Поскольку уже существующие параметры конфигурации задействованы много где, и менять способ получения их значений во всём коде не хочется, приходит решение существующий класс переименовать, а новый класс с именем _config_ от него наследовать, попутно добавив туда свойства, полученные из БД. Собственно, проблема в этом "попутно добавив". Если забыть про eval, то как это можно реализовать?
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37536155
sxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ru.php.net/manual/ru/language.oop5.overloading.php - перегрузка
http://ru.php.net/manual/ru/book.classkit.php - расширение языка, которое создает все это, правда ни разу не видел что бы оно было установлено у какого- либо хостера.
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37536160
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CraC,

чуток не догнал....
Код: plaintext
$config =  mysql_fetch_object ($res,'_config_'); 
не то?
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37537794
CraC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sxq,

Похоже что такая, кхм, своеобразная перегрузка как раз решит мою проблему. Большое спасибо!

ClassKit посмотрел по диагонали. Там почему-то манипуляции происходят только с методами, а не со свойствами. И это расширение пока что производит впечатление экспериментального. И "перегрузкой" (в кавычках, да) у меня сейчас решается проще.
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37537796
CraC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ренат, благодарен за Ваш ответ. В конкретно моей ситуации этой функцией обойтись не получится, но вообще буду иметь ввиду.
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37903039
tarasnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CraC, вам удалось решить проблему?
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37907907
tarasnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отвечу сам себе (вдруг пригодится), не пробовал, но может в тему: PDO::FETCH_CLASS
...
Рейтинг: 0 / 0
[PHP] Создание класса, набор свойств которого динамически берётся из БД
    #37911647
nbaksalyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому решение еще нужно - то, по идее, вот это должно сработать:
Код: php
1.
2.
3.
4.
5.
// ...
$configData = mysql_fetch_assoc(); 
foreach ($configData as $key => $value) {
    _config_::$$key = $value;
}
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Создание класса, набор свойств которого динамически берётся из БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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