Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Ооп в пхп
Новая тема
Ответить
цитата
13/08/13 в 09:28
Lexikon
раньше как то не сталкивался с этим, а тут стал писать код, и чет увлекся, и чтоб не путаться определенные части кода стал писать отдельно. Получилось несколько файлов. И чтоб не собирать это все воедино в одном файле вспомнил про ООП.
Создаю "index.php" тут будет все собираться и выполняться. и создаю из тех отдельных кусков "class.one.php", "class.two.php", "class.three.php"
Вот тут возниквопрос.
Можно ли создать один файл "config.php" в котором будут редактируемые значение переменных, при этом подключить это все к классам? Т.е. к примеру у меня массив, который должен быть редактируемый, и я его хочу занести в "config.php", но при этом все классы должны работать непосредственно с ним.
Незнаю как это правильно сделать.
просто вписывать этот массив в каждый клас, чет мне кажется глупо, при том что если нужно будет что то отредактировать придется каждый класс редактировать.
цитата
13/08/13 в 10:22
ibiz
ну инклюдишь config.php в начале скрипта, а затем уже создаешь классы, присваиваешь переменные, инкапсуляция наследование полиморфизм
цитата
13/08/13 в 11:44
freeek
мне кажется тут уже дело касается шаблонов проектирования. ООП это оперирование абстракциями, взаимодействие объектов. ООП ради ООП ничего хорошего не даст.
как правило у любого приложения есть точка входа, в которой происходит инициализация окружения, в том числе подключения конфигураций и т.д. в файле config.php как правило набор констант, подключение к БД, кодировка и т.д.
так же есть мнение что глобальные переменные это зло и не стыкуется с практикой ооп. объявлять его как global не есть хорошо, да и может возникнуть путаница с областью видимости. как вариант объявить его статичным свойством некоего класса, который будет доступен в любой точке приложения.
но опять же, все слишком размыто и не совсем понятно, что именно требуется и не ясно требуется ли это делать именно так.
цитата
13/08/13 в 14:38
Pentarh
Эволюционируй дальше - переходи на MVC
цитата
13/08/13 в 15:00
Stek
Lexikon писал:
Незнаю как это правильно сделать.
В конфиге делаешь define нужных переменных, а далее используешь их в любом месте.
цитата
13/08/13 в 20:39
Lexikon
ок спасибо.
хотел одно, а потом чет понесло
, а если так, а если этак
цитата
13/08/13 в 20:48
idk2045
Код:
$params = array('bla', 'bla2');
define(SITE, 'www.domain.com');
class One {
function hehe() {
global $params;
echo $params[0];
echo SITE;
}
)
цитата
13/08/13 в 21:45
Yacc
grozny писал:
class One {
function hehe() {
global $params;
Это где так кодить учат? В кулинарном техникуме что ли?
Вот упрощённая до нельзя, но архитектурно грамотная схема:
configs/default.php
Код:
<?php
return array(
'foo' => 'bar'
);
classes/config.php
Код:
<?php
class config {
static function load($config = 'configs/default.php') {
return file_exists($config) ? require $config : false;
}
}
classes/myclass.php
Код:
<?php
class myclass {
var $config;
function __construct() {
$this->config = config::load();
}
}
Новая тема
Ответить
Эта страница в полной версии