![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| artuska |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
Сделал так:
Я-то думал, что можно создать один класс (Core), в котором есть некие необходимые переменные, и потом, те классы, которые наследуют первый класс (например, class User extends Core) будут не только наследовать переменные класса Core, но будут наследовать если я им присвою иные значения в конструкторе класса Core. А оказалось, что при вот этой записи — class User extends Core — конструктор класса Core исполняется еще раз, при создании класса User ($user = new User();), только уже без параметров $options, а массив $options по умолчанию у меня пустой, поэтому цикл foreach конструктора класса Core исполняется без параметров и не присваивает своим переменным новые значения. Кто не понял, вот пример:
Буду просто при вызове любого класса пихать туда массив переменных — $core = new Core($options); $user = new User($options); Тема затянулась. Спасибо всем! Думаю, вопрос можно считать решенным. |
||||
|
|||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
а почему не сделать все подключения в одном классе и работать между классами внутри одного класса и в зависимости когда они нужны грузить их и вызывать.
немного теории как это сделать есть список классов (все классы разделить на файлы и переименовать на имя класа.пхп ) далее сделать функцию которая перебирает массив методом foreach ишит совпадения если находит подключает файл класса и вызывает класс переменную затем запихиваем в другой массив (для создания списка подключенных файлов) в функции присвоения пример $this->arrayClass[] = new имя класса как их использовать core.arrayClass['имя класса'] и вызываем методы. создаовать копии также ( new или clone ) core.arrayClass['имя класса'] лично я уже такое сделал только у меня едро цмс использует большую вложенность классов каждый класс может обратится к функциям самого главного класса. минус в такой реализации всегда строго следовать вызовом класса и их методам ну минус это ил плюс все классы хранить в одной папке. плусы тоже есть все без global сделано и авто подключения класса нет не нужного кода на странице. если приведете еще минусы с удовольствием почитаю. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Sanchezzz, я так и не понял что вы предлагаете и что сделали у себя. Если говорить приминительно к задаче топикстартера, то тут достаточно отдельного класса i18n c сингелтоном.
например эту фразу я вообще не понял
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| artuska |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
||||
|
||||
| Sanchezzz |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
i18n c сингелтоном ну у меня совсем другое
точто я написал я у себя, это мой велик... как он работает подрубается один файл core далее у него есть пару методов подключение класса и вызов компонента (форум, новости , магазин, итд) - они тоже находятся в классах сам процесс: 1 Подключается коре класс. 2 главный класс собирает сколько классов и какие есть и запихивает все в один массив. Далее программист работает с классами через пользовательскую функция по вызову класса $mysql = new или clone $core->arrclass['mysqli']; вот про минус расскажу. есть еще один класс который подключается через другие функции и чтобы передать туда все функции главного класса нужно передавать этому классу $this главного класса и тогда все классы будут доступны этому новому классу через следующи. конструкцию
далее нужно передать ссылку от класса core
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |