![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Как правильнее подключать и использовать класс?
Так?
или так?
Это сообщение отредактировал(а) Gold Dragon - 28.6.2011, 17:51 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
Valinur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 21.9.2007 Где: Москва Репутация: 4 Всего: 6 |
Судя вашей логике, можно даже и так
А вообще как-то неправильно выглядит эта конструкция вся. Сам подход. --------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ... |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Valinur, поясни?
Добавлено через 45 секунд а как функции получат глобальную переменную? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Valinur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 21.9.2007 Где: Москва Репутация: 4 Всего: 6 |
Да, простите, как-то не подумал об этом. Но у нас ведь есть ООП. Почему бы не завести класс, одним из членов которой был бы как раз $GDK? И тогда в каждой функции просто пришлось бы обращаться только к $this->GDK Мне правда не известны детали вашего кода.... Но конкретно в вашем примере, я бы использовал первый вариант в силу обратной совместимости:
Т.е. если вдруг нам придется менять вызов конструктора, передавать ему какие-то аргументы, или например после создания объекта надо будет его настроить, то это надо будет сделать только в одном месте - в самом начале, а не бегать по каждой функции. --------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ... |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
![]() Я тоже склоняюсь к первому варианту, он намного проще и более понятен.. Но скажется ли это на работе? Ведь в первом случае мы создаём глобальную переменную, а она достаточно большая, и гоняем её. Во втором случае мы создаём только локальные переменные, которые умирают после завершения функции -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Valinur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 21.9.2007 Где: Москва Репутация: 4 Всего: 6 |
Да, конечно. Но никто не мешает их сделать членами класса. А unset-нуть нельзя разве ее после? --------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ... |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Valinur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 21.9.2007 Где: Москва Репутация: 4 Всего: 6 |
Почему же лишний? Вполне себе уместное применение функции unset. Подчищаем мусор за собой. Ну или можно "сунуть" его в деструктор этого объекта, если не хотим "лишнего" кода.
--------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ... |
|||
|
||||
Absinthe |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Добавлено через 30 секунд Топикстартер, ru.wikipedia.org/wiki/Абстрактная_фабрика |
||||
|
|||||
Valinur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 21.9.2007 Где: Москва Репутация: 4 Всего: 6 |
Ну или можно "сунуть" его в деструктор этого объекта, если не хотим "лишнего" кода. --------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ... |
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Это сообщение отредактировал(а) Absinthe - 29.6.2011, 00:31 |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Absinthe, поясни по абстрактной фабрике
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Gold Dragon, создание объектов - это типовая ситуация, поэтому для создания объектов применяются типовые решения.
Одно из таких решений - абстрактная фабрика, мне показалось, что оно подойдет тебе. Можешь посмотреть другие типовые решения. Использование таких решений вместо корявых велосипедов делает код проще и читаемее. И не надо думать, как извратиться с велосипедом. А unset применяется только для удаления элементов массива. Если удаляешь переменные - это костыль для устранение части последствий какой-то проблемы(но не самой проблемы). |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Absinthe, нарыл кучу статей, прочитал. Но,к сожалению, не понял этот принцип. Я то душой понимаю что это хорошо. Даже реально видел как с ним работают разные CMS. Но что-то мне не хватает в мозгу
![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Чтобы научиться грамотно использовать ООП освой 1-2 фреймворка. Например ZF и что-то из Yii/Kohana. |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Absinthe, что значит освой? И что значит "пока не научишься? Я для чего тут вопросы задаю? Наверное чтобы научиться. И зачем мне подобные ответы нужны?
Если человек спрашивает как нарисовать квадрат, то ему показывают как это сделать, а не говорят: "Иди и научись" -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Gold Dragon, а какая цель всего этого?
-------------------- Amazing ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а вот хамить не стоит. Absinthe, не считай себя умнее других. На каком уровне ООП нужно знать чтобы с тобой общаться? Если тебе не хочется "сюсюкаться" со мной, так просто забей на эту тему. Просто интересно, зачем ты сам на этом форуме? Помогать или получать помощь? Я лично в данной момент хочу получить помощь, а не особое мнение по поводу моих знаний. На Винграде люди учатся, т.е. задают вопросы и получают ответы даже по самым элементарным основам. Или ты хочешь что-то изменить тут?
Научиться создавать это и использовать. Я нарисовал в самом начале как у меня это. Если что не хватает, то могу показать дальше. Главное чтоб направляли в нужное русло -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
рано думаете об оптимизации. думайте об архитектуре, если выйдет хорошая, и оптимизировать не понадобится. как Вам такое решение:
http://codepad.org/QfR4jInv можно даже замутить че то вроде
Добавлено через 11 минут и 11 секунд http://codepad.org/dVVrEc63 Это сообщение отредактировал(а) baldina - 30.6.2011, 15:27 |
||||||
|
|||||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
baldina, сейчас наложу на свой проект и расскажу что и как.. Я уже малость почитал про это и примеры зажаться уже знакомыми
![]() ![]() Это сообщение отредактировал(а) Gold Dragon - 30.6.2011, 15:43 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Да ты дал ссылку на Вики. Да я получил что-то похожее на общее представление. Но где пояснения, или считаешь что и так всё понятно? baldina ответил похоже, но его ответ более мне понятен.
В общем суть простая. Мы оба погорячились и вспылили. У всех свои амбиции. Предлагаю это недопонимание закончить здесь и сейчас. Если что-то осталось, то перенести в личную переписку. И всё что будет не по теме дальше тут, будет удалено. Оставим тут простой вопрос и простые ответы.... Это сообщение отредактировал(а) MoLeX - 1.7.2011, 05:24 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
в общем попробовал эту абстрактную фабрику... Даже малость разобрался.. Но как я понял, это хорошо на достаточно больших проектах типа CMS. Но для простых сайтов, пусть даже больше чем просто визитка, это слишком громостко, т.е. излишне. Получается механизм для управления механизмом. Хотя пока изучал наткнулся на достаточно большое количество противников данного метода
![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
а зачем на визитках и больше чем визитки ООП? -------------------- Amazing ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ну я образно "визитки".. Например, та же "визитка" + управление шаблонами + новостной канал + форма обратной связи + гостевая книга + "вопрос-ответ"
Получается средненький сайт, но при этом всем этим нужно управлять. И для каждой системы свой класс.. Добавлено через 1 минуту и 13 секунд можно конечно и процедурно всё сделать, но лучше всё таки разделить -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
согласен, но тут уж наверное дело вкуса.. ООП как-то более нагляднее и интуитивно понятнее
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |