[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ООП. Философия авторизации
Страницы: 1, 2, 3, 4, 5, 6
chee
Arh, помоему ты сам придумал проблему и сам раздуваешь над ней, я что говорил что в конструктор можно передавать только объекты? нет. Я говорил что передача объекта в конструктор другого объекта называется внедрением зависимости через конструктор, а передача строки в конструктор, так и называется передача параметра в конструктор.

casper - gg, понятно.


Цитата (twin @ 23.04.2016 - 21:20)
Однако это для опенсорсного фреймворка, а там заклюют.

Ой, да тебе же на это начихать. Дай и кто тебя заклюет, я перестану обращать на него внимание и будешь ты писать в свои темах один, твой фреймворк это максимум CI первой версии.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
casper - gg
Анонимные функции штука хорошая, правда не часто встречаются в повседневной жизни =)
Что бы понять нафига они нужны, нужно столкнуться с задачей, где бы они пригодились.
Так что если сейчас не понимаешь, потом, когда понадобятся сразу поймёшь.
Например сделай библиотеку событий, в которой можно регистрировать обработчик событий и собственно запускать само событие.

К примеру у тебя есть класс для работы с новостями.

class News {

protected $Handler; //Обработчик событий

public function __construct (Handler $Handler) {

$this->Handler = $Handler;

}

# Добавляет новости
public function add ($content) {

$this->Handler->event('news.add', $content); // Вызываешь событие

// добавляешь content в базу


}

}


Ты хочешь это событие как то обработать, может записать в лог, оповестить админа по почте или даже поменять $content
Регистрируешь обработчик события.

$Handler = new Handler();
$Handler->add('news.add', function (&$content) {

$content = 'Другой контент';

});

$News = new News($Handler);
$News->add('Привет'); // в базе будет "Другой контент" вместо "Привет"


А вообще ты с DIC хотел разобраться, там используются анонимные функции.
Типа так
$DI = new DI();
$DI->set('News', function () {

return new News();

});

$News = $DI->get('News');
$News->add('Привет');


Или допустим ты хочешь что бы $DI->get('News'); всегда возвращал объект с какой то настройкой по умолчанию, что бы каждый раз не настраивать.

$DI = new DI();
$DI->set('News', function () {

$News = new News();
$News->config([
'table' => 'news',
'limit' => 30,
'sort' => 'DESC'
]);
return $News;

});

$News = $DI->get('News');
$News->add('Привет');


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.