|
|
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
Исходная ситуация: Есть некий не слишком простой сайт, в котором параметры конфигурации задаются как свойства класса _config_, следующим образом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Задача: С целью упрощения работы с конфигурацией, например, в части адресов электронной почты для всяких уведомлений, решено хранить часть этих параметров в БД, имея возможность из CMS (свой велосипед, но здесь это не важно) изменять их значения. Если возникнет необходимость добавить новый параметр конфигурации, его будет логичнее вписать только в БД, не дублируя больше нигде. Проблема: Поскольку уже существующие параметры конфигурации задействованы много где, и менять способ получения их значений во всём коде не хочется, приходит решение существующий класс переименовать, а новый класс с именем _config_ от него наследовать, попутно добавив туда свойства, полученные из БД. Собственно, проблема в этом "попутно добавив". Если забыть про eval, то как это можно реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 03:25:45 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
http://ru.php.net/manual/ru/language.oop5.overloading.php - перегрузка http://ru.php.net/manual/ru/book.classkit.php - расширение языка, которое создает все это, правда ни разу не видел что бы оно было установлено у какого- либо хостера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 08:02:04 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
CraC, чуток не догнал.... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 08:28:55 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
sxq, Похоже что такая, кхм, своеобразная перегрузка как раз решит мою проблему. Большое спасибо! ClassKit посмотрел по диагонали. Там почему-то манипуляции происходят только с методами, а не со свойствами. И это расширение пока что производит впечатление экспериментального. И "перегрузкой" (в кавычках, да) у меня сейчас решается проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 23:56:28 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
Ренат, благодарен за Ваш ответ. В конкретно моей ситуации этой функцией обойтись не получится, но вообще буду иметь ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 23:58:39 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
CraC, вам удалось решить проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 10:45:31 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
отвечу сам себе (вдруг пригодится), не пробовал, но может в тему: PDO::FETCH_CLASS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2012, 20:50:06 |
|
||
|
[PHP] Создание класса, набор свойств которого динамически берётся из БД
|
|||
|---|---|---|---|
|
#18+
Если кому решение еще нужно - то, по идее, вот это должно сработать: Код: php 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2012, 09:35:59 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37907907&tid=1464822]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
204ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 533ms |

| 0 / 0 |
