Реклама на сайте Advertise with us

Ооп в пхп

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 13/08/13 в 09:28       Ответить с цитатойцитата 

раньше как то не сталкивался с этим, а тут стал писать код, и чет увлекся, и чтоб не путаться определенные части кода стал писать отдельно. Получилось несколько файлов. И чтоб не собирать это все воедино в одном файле вспомнил про ООП.
Создаю "index.php" тут будет все собираться и выполняться. и создаю из тех отдельных кусков "class.one.php", "class.two.php", "class.three.php"
Вот тут возниквопрос.
Можно ли создать один файл "config.php" в котором будут редактируемые значение переменных, при этом подключить это все к классам? Т.е. к примеру у меня массив, который должен быть редактируемый, и я его хочу занести в "config.php", но при этом все классы должны работать непосредственно с ним.
Незнаю как это правильно сделать.

просто вписывать этот массив в каждый клас, чет мне кажется глупо, при том что если нужно будет что то отредактировать придется каждый класс редактировать. icon_mad.gif

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 13/08/13 в 10:22       Ответить с цитатойцитата 

ну инклюдишь config.php в начале скрипта, а затем уже создаешь классы, присваиваешь переменные, инкапсуляция наследование полиморфизм trollface.png

5
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 13/08/13 в 11:44       Ответить с цитатойцитата 

мне кажется тут уже дело касается шаблонов проектирования. ООП это оперирование абстракциями, взаимодействие объектов. ООП ради ООП ничего хорошего не даст.

как правило у любого приложения есть точка входа, в которой происходит инициализация окружения, в том числе подключения конфигураций и т.д. в файле config.php как правило набор констант, подключение к БД, кодировка и т.д.

так же есть мнение что глобальные переменные это зло и не стыкуется с практикой ооп. объявлять его как global не есть хорошо, да и может возникнуть путаница с областью видимости. как вариант объявить его статичным свойством некоего класса, который будет доступен в любой точке приложения.

но опять же, все слишком размыто и не совсем понятно, что именно требуется и не ясно требуется ли это делать именно так. icon_wink.gif

11
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 13/08/13 в 14:38       Ответить с цитатойцитата 

Эволюционируй дальше - переходи на MVC icon_smile.gif

9
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 13/08/13 в 15:00       Ответить с цитатойцитата 

Lexikon писал:
Незнаю как это правильно сделать.


В конфиге делаешь define нужных переменных, а далее используешь их в любом месте.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

7
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 13/08/13 в 20:39       Ответить с цитатойцитата 

ок спасибо. smail54.gif
хотел одно, а потом чет понесло icon_razz.gif , а если так, а если этак trollface.png

1
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 13/08/13 в 20:48       Ответить с цитатойцитата 

Код:
$params = array('bla', 'bla2');
define(SITE, 'www.domain.com');

class One {
  function hehe() {
    global $params;
    echo $params[0];
    echo SITE;
  }
)

-2
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 13/08/13 в 21:45       Ответить с цитатойцитата 

grozny писал:
class One {
  function hehe() {
    global $params;

Это где так кодить учат? В кулинарном техникуме что ли? icon_smile.gif

Вот упрощённая до нельзя, но архитектурно грамотная схема:

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();
    }
}

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »