[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ООП. Философия авторизации
Страницы: 1, 2, 3, 4, 5, 6
Arh
casper - gg
Цитата
что-то спорит с twin'ом

Тут главное не с кем, а как)
например: "Он воняет лавандой и персиками, а твой воняет говном"

casper - gg
Цитата
Кстати, я то же использую "внедрение зависимостей" вот такое:

А в чём профит? Я не говорю что это правильно или не правильно, просто вопрос, никакого скрытого смысла между строк, никак не пытаюсь что то доказать или опровергнуть, просто хочу услышать ИМХО, почему выбрана такая схема, что она даёт.

Почему так, а не так:
$controller = new Controller($_POST, $_GET);


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg
Если честно, то сам не знаю, просто раньше писал вот так
Цитата (Arh @ 23.04.2016 - 14:01)
$controller = new Controller($_POST, $_GET);

а потом стал "внедрять зависимости", ну у меня получилось логично это в таком разрезе:
в первом объекте существует список настроек (типа конфиги), второй работает с БД, но для работы ему нужны настройки, вроде названия таблиц, еще что-то и т.п.
-то есть получается вот так:
$obj = new Worker_System_Users( Worker_Config::get() );


или вот такое то же есть, -
$tpl->viewUser( $obj->browseUsers($_GET['parent']) );


то есть с левой части всегда - объект отображения, а с правой, объект - выборки из БД. А в $tpl всегда объект отвечающий за вывод, а в $obj всегда объект отвечающий за формирование данных.

такая вот самодельная логика , а как правильно, этого конечно не знаю. Но работает и ориентироваться что есть что не так и сложно.
chee
Цитата (Arh @ 23.04.2016 - 13:30)
Так вот $_REGUEST['uri'] это зависимость, это не массив и не объект, это вообще строка.
То есть класс зависит от данных, неважно какой у них тип, в данном случает от данных типа string.
Да и вообще классы тут не причём, обычная функция зависит от параметров переданных в неё.
Инъекция это введение, внедрение.

Лол, сам придумал?
Цитата (casper - gg @ 23.04.2016 - 13:42)
правда, только сейчас узнал, что называется вот так. Ну что сказать, - ниче себе, это я что же в, могу говорить что я разбираюсь как внедрять зависимости.

А это как будто так сложно, разобраться с внедрением зависимостей?
Цитата (casper - gg @ 23.04.2016 - 13:42)
что он постоянно что-то спорит с twin'ом. И по-делу и не по-делу.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
casper - gg
Цитата
$request = new Request($_POST, $_GET);
$controller = new Controller($request);

Я в таком способе вижу один сомнительный плюс. То что хочет Zzepish.

Вначале запуска системы сделать
$request = new Request($_POST, $_GET);

Что бы сохранить состояние этих массивов, что бы уже было всё равно меняет их кто или нет.

Почему сомнительный плюс. Потому что в таком случае в классе Request недолжно быть никаких сеттеров, что бы нельзя было поменять состояние.

Но как тогда в моём примере выше поступить? В контроллер нужно подсунуть $request с другими данными. Создавать еще один и передавать туда ненужные $POST, $SESSION, $COOKIE, $SERVER, $FILES ? А если их кто то поменял? Всё насмарку.

$_POST['key'] = 'кто то поменял';
$request = new Request($_POST, ['key' => 'нужное значение']);
$controller = new Controller($request);


ИМХО класс Request имеет права на существование, только для получения из него данных из первоисточника.

А делать зависимым от него контроллер получается как то монолитно.

Вот так более гибко на мой взгляд
$request = new Request($_POST, $_GET); //где то вначале сохраняем состояние
// код, код, код

$controller = new Controller($request->post, ['key' => 'нужное значение']); // передаём в контроллер неиспорченный POST и нужный нам GET


А вообще это всё похоже на паранойю =)
$_GET сам по себе самодостаточный, оборачивать его смысла нет, да и значение в нём может быть изменено умышленно.
Другое дело обернуть сессию, как уже выше заметили она может в базе хранится.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg
Цитата (chee @ 23.04.2016 - 15:27)
если ты считаешь, что я не прав или не по делу, так и пиши во время спора.

когда по коду тогда по-делу, а когда типа "да ты не разбираешься", тогда не по делу. Ну, без "а поговорить", то же не интересно, так что "не по делу", это то же интересно )
chee
Цитата (Arh @ 23.04.2016 - 13:30)
Эгоцентричная

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
chee
Цитата
Лол, сам придумал?

Нет блин, списал у соседа. А ты сам свои сообщения придумываешь?

Если что то не понятно спроси что, отправлю тебя в google translate, покажу как в функции можно параметр передать, расскажу что кроме объектов есть другие типы в php.

Цитата
В этом нет ничего плохого, я действительно все делаю для того что бы мне было лучше.

Ты путаешь с эгоизмом.
Эгоист делает всё ради себя.
Эгоцентрист считает что он лучше всех и что его точка зрения всегда истинна, а у остальных всегда самое дно, потому что не так, как у него.
А плохого и негативного от тебя много исходит.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg
Эгоцетрист это один из методов Эгоиста, вот так это выглядит в коде:
$ответ = Эго->Эгоист->Эгоцентрист( 'Тема обсуждения' )

:D
chee
Цитата (Arh @ 23.04.2016 - 15:44)
Ты путаешь с эгоизмом.
Эгоист делает всё ради себя.
Эгоцентрист считает что он лучше всех и что его точка зрения всегда истинна, а у остальных всегда самое дно, потому что не так, как у него.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
chee
Цитата
Посмотри тему с контейнером

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

Цитата
Если более опытный программист говорит что ты заблуждаешься, это вовсе не означает что он эгоцентрист


В том и дело что ты не говоришь что кто то заблуждается и почему.
Типа "Я считаю так неправильно, потому что ..."
Ты говоришь это так, как бы сказал эгоцентрист, скорее даже обвиняешь:
"У тебя всё гавно потому что я уже целую неделю делаю вот так, а у тебя всё по другому, у тебя не хватает опыта понять как надо, поэтому даже объяснять не буду, потому что сам нихера не понимаю, но у меня круче, инфа 146%"

Но это только моё сложившееся впечатление, может у других не такое, так что не зацикливайся, а то съезжает =)

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Раз про меня вспомнили, своё имхо выскажу.
Цитата (chee @ 23.04.2016 - 08:33)
Внедрение зависимостей это именно объектная фишка
Это с чего бы вдруг? Вспомни про свой любимый композер. Что он есть суть? Менеджер зависимостей. И зависимость тут, это вовсе не объект, а целая либа. Иногда даже с картинками.
Это одна крайность, в сторону увеличения. Есть и другая. В сторону уменьшения:
function recepient($dependensy)
{
$dependensy->__invoke();
}

$dep_one = function() {
echo 'Я что, не зависимость?';
};

$dep_two = function() {
echo ' А я? Вот даже сейчас обидно стало';
};

recepient($dep_one);
recepient($dep_two);
Где ты здесь видишь хоть один объект?

Так что не нужно присваивать тебе не принадлежащее. Никакая это не объектная фишка. Зависимость - от слова "зависеть". Не более и не менее.

И если что-то не берет это само, а ему это принудительно втыкают, как укол в жопу, то это инъекция. Так что вполне можно внедрение массива обозвать "внедрением зависимости".

Хотя о чем я. Сам недавно писал статью, что сколько ООПэшников, столько и мнений. :D

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
chee
Цитата
Arh, твой код на гитхабе, я делаю выводы о твоём уровне по нему.

Уровне чего? Уровне приближенности к твоим личным идеалам?
К тому же у меня сейчас нет актуальных проектов с открытым доступом. За пол года многое что изменилось, мне мой старый код тоже не везде нравится, всегда есть желание сделать лучше, да и стиль у всех разный и задачи, тут на вкус и цвет.

И твой скилл в чём то одном не делает тебя спецом вообще во всём.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg
так вот часто о чем спорите, думаю что за зависимости, нужно в них разобраться (уже где-то часов с двух дня разбираюсь в зависимостях -) ), а оно вон че: внедрение объекта зависимостей, внедрение массива зависимостей, передача аргумента в функцию так же по сути внедрение зависимости результата работы функции от переданного в нее аргумента. Хух, скоро буду выучать, что такое композер, а потом и ди поучу.
twin
casper - gg
Инъекцию не только аргументом можно. Важно, что оно туда попало принудительно)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

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