![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Echo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.2.2006 Репутация: нет Всего: нет |
Напишите, как вы организуете хранение данных, доступность которых требуется из всего скрипта.
Т.е. как лучше всего хранить данные, к которым должна быть возможность обратиться из любых точек скрипта - в том числе из подключенных файлов и классы. массив $GLOBALS не хотелось бы использовать т.к. в нем изначально много данных и , например , при отладке трудно отделить свои переменные от созданных PHP. Что касается создания своего глобального массива - то каждый раз объявлять его внутри всех функций как глобальный - требует по-крайней мере внимательности еще и на это. Можно ли использовать для таких целей $_ENV? Или как лучше?.. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
я "глобальные" данные передаю параметром там, где вызов функций.
там, где происходит include, доступность и так есть. |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Если у тебя все на классах, то можешь в конструктаре каждого класса объявлять, если же нет, то придется в каждой функции либо объявлять global, либо передавать параметром. А константы объявляешь(define), и они доступны во всем скрипте.
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Использование глобальных переменных считается плохим тоном и ошибкой проектирования.
|
|||
|
||||
BobiKK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 655 Регистрация: 1.12.2005 Где: Essen, Deutschlan d Репутация: 4 Всего: 16 |
||||
|
||||
Echo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.2.2006 Репутация: нет Всего: нет |
допустим в прологе обрабатываем полученные от пользователя данные и создаем на основе них переменные (с новыми именами), описывающие фильтр и источники данных, либо пустые, если от юзера пришла какая-нибудь ерунда. ну и хотелось бы что бы при вызове других классов всегда можно было обратиться к источнику данных изнутри. есть негатив в таком подходе? |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
Echo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.2.2006 Репутация: нет Всего: нет |
skyboy, и зачем?
речь о пределах одного запроса пользователя |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Echo, я не хочу вдаваться в дискуссию касательно того, что лучше, что хуже.
Использование ГП ведет к ввозможным ошибкам и т.п. Само собой при решении задач иногда бывает нужно это сделать и ничего плохого в этом не будет, но вот злоупотреблять этим - себе дороже. |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
Самым лучшим решением считаю статические мемберы класса. Для отладки самое то, имена не могут пересекаются и некоторые ИДЕ (например эклипса) могут их подсказывать. Вообще идея из JAVA, где такой паттерн уже давно используется.
Это верно, но иногда ИМХО есть смысл, если в приложении больше одного обьекта не существует. Например connection к базе данных, или темплейт для генерации страниц, или обьект - переводчик, или обьект для логгинга ошибок. (В принципе только эти четыре мне и попадались) |
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
sergejzr, а в таком случае можно их как ссылкой в свойство класса занести из того, откуда вызываются
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
Кстати и константы можно так определить
|
|||
|
||||
Diesel Draft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: 1 Всего: 5 |
Я использую Фреймворк. Там глобальные данные предназначены только для настоек самого Фреймворка. Я согласен с Mal Hack что это плохой тон в программировании
|
|||
|
||||
Echo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.2.2006 Репутация: нет Всего: нет |
sergejzr, да, спасибо.
теперь изучаю ![]() идея очень понравилась |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |