[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ООП. Философия авторизации
Страницы: 1, 2, 3, 4, 5, 6
chee
twin, пам пам http://php.net/manual/ru/class.closure.php

Цитата (twin @ 23.04.2016 - 17:22)
Менеджер зависимостей. И зависимость тут, это вовсе не объект, а целая либа. Иногда даже с картинками.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
casper - gg
Как обычно, читаешь статьи с заумными словами, ничего не понятно, думаешь что это слишком сложно, а потом оказывается что давно уже это используешь.
И от мысли что во круг такого пустяка столько всего раздули лицо становится вот таким blink.gif

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg
Arh
да-да, и таким еще
user posted image
twin
Цитата (chee @ 23.04.2016 - 14:00)
Я говорил, про внедрение зависимостей, а не про зависимости в общем.

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

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

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

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

user posted image
twin
Цитата (chee @ 23.04.2016 - 14:00)
twin, пам пам

А что пам пам? То, что в PHP таким образом решили замыкания? На PHP свет клином не сошелся.

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

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

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

user posted image
chee
twin, Arh я оставлю ваше право на заблуждение

Цитата (twin @ 23.04.2016 - 18:14)
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.



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

1. Потому что это секретная информация. (Ты избранный и только ты посвящён в тайны мира)
2. Потому что понял что заблуждаешься, но не хочешь этого признавать. (Лучшая защита это нападение)
3. Потому что это сложно объяснить или нет времени. (Если нет времени выбери цифру)
4. Потому что мы еще/совсем недостойны обладать такими знаниями. (Достоин только один)
5. Потому что хочешь что бы другие отечественные и не только разработчики оставались в неведение. (эгоист)

=)

Тебе как всегда всё по полочкам разложили, разобрали по словам.
Зависимость - как бензин для машины, еда для человека, аргумент для функции, самолюбие chee.
Внедрение, инъекция - залить в бак, засунуть в рот, передать в функцию, потешить.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Arh
Успокойся. smile.gif Почитай еще раз это. Я не зря столько времени рыл интернет.

Вот же все просто:
Цитата
методология (не парадигма) ООП сводится к принципу слежения за тем, чтобы программисты использовали как можно меньше "необъектных" возможностей языка. Причем разные подсообщества устанавливают эти рамки сами для себя. Кто-то вообще отрицает возможность использования статики, кто-то неприемлит stateless, считая его закамуфлированной процедуркой, кто-то недопускает публичных свойств, придерживаясь строгой инкапсуляции, а другие считают это совершенно бесполезным и даже вредным занятием, и так далее.


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

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



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

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

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

user posted image
chee
Arh, я отвечу просто, поищи в интернете словосочетание "внедрение зависимостей", посмотри что обычно там описывают, в каком контексте.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
casper - gg
кстати, прочитал ссылку от chee про "Класс используемый для создания анонимных функций." Как работает, вроде ясно, но зачем это нужно еще не прозрел. Но вот название меня развеселило, - Closure, для меня звучит как клюжа, то есть клюшка. Есть костыли, а теперь еще и клюшки laugh.gif .

но эт так, юмор, оно то может и полезное, хз.
chee
Цитата (casper - gg @ 23.04.2016 - 19:41)
Как работает, вроде ясно, но зачем это нужно еще не прозрел.

Ты точно понял о чём там речь?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 23.04.2016 - 16:35)
Ты точно понял о чём там речь?

Да это ты не понял, о чем речь. Может вот так поймешь:
<?php
// Это реципиент
function recepient($dependensy)
{
$dependensy->__invoke();
}

// Это транспортные средства
$dep_one = function() {
dependesyOne();
};

$dep_two = function() {
dependesyTwo();
};

// Это просто функции. И они ЗАВИСИМОСТИ.
function dependesyOne()
{
echo 'Я что, не зависимость?';
}

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

recepient($dep_one);
recepient($dep_two);


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

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

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

user posted image
Arh
twin
Цитата
Ну установил он для себя такие рамки, что зависимость, это только объект, пусть там и пребывает.


Ну просто вот пример из phalcon
new LoggerFile('../apps/logs/error.log');


Тогда что бы использовать объект для инъекции адреса файла получается надо делать так.

$ErrorConfig = new ErrorConfig('../apps/logs/error.log');
$LoggerFile = new LoggerFile($ErrorConfig);


Но в объект ErrorConfig тоже вводится (инъжектится) строка
Тогда как? Так?

$FileForErrorConfig = new FileForErrorConfig('../apps/logs/error.log');
$ErrorConfig = new ErrorConfig($FileForErrorConfig);
$LoggerFile = new LoggerFile($ErrorConfig);

Где начало найти, когда можно строку внедрять. Так и до дурки недалеко =) будет 150 файлов запускаться, пока не надоест.

Я спокоен, просто тему новички тоже читают, наматывают на ус, а потом на вопрос "нафига ты столько файлов сделал" будут отвечать "поищи в интернете словосочетание ООП. Философия авторизации, на заборе там написано что внедрять можно только объекты"






_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Arh @ 23.04.2016 - 17:09)
Философия авторизации, на заборе там написано что внедрять можно только объекты

Внедрять можно что угодно и куда угодно. Правда такие апологеты, как chee, всё, что не объектами, тут же назовут костылями. Потому что они в рамках, и за них носа боятся высунуть.

Вот у меня задача стояла, как внедрить объект в функцию. На первый взгляд только два способа. Аргументом или global. Первое не подходит по структурным причинам, второе считается моветоном. Я бы не задумываясь сделал бы вторым способом, через темповую переменную. Однако это для опенсорсного фреймворка, а там заклюют. И я таки нашел третий способ, компромисс.

А если бы в рамках сидел, раздул бы кучу классов. Так как даже подумать не смог бы в сторону от объектов. И не смог бы применить красивое решение своей задачи.

А что касается "посмотри в гугле", так это просто принцип толпы. В википедии написали, что это объекты, так все и циклятся.

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

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

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

user posted image
casper - gg
Цитата (chee @ 23.04.2016 - 20:35)
Ты точно понял о чём там речь?

Ну хз, ну попробую пересказать, что понял:
вот начало понимания - Анонимные функции, также известные как замыкания (closures), позволяют создавать функции, не имеющие определенных имен. То есть в переменную записана функция и при вызове переменной срабатывает, собственно функция.
Правда, если нам нужна какая либо переменная в функции, вот так в функцию она не попадает
$message = 'hello';
// Без "use"
$example = function () {
var_dump($message);
};
echo $example();

нужно вот так:
// Наследуем $message
$example = function () use ($message) {
var_dump($message);
};
echo $example();

но дальше, если мы изменим где-то в скрипте переменную, после записи "клюшки" (ну для упрощения так назвал -) ), то хрен она изменится в самой клюшке. Разве что записать переменную "по ссылке" в саму "клюшку" (вроде так это называется)(но имхо, - это и есть самая фишка механизма).

это все как бы функционерно выглядит . Но вот это - " PHP автоматически преобразует такие выражения в экземпляры внутреннего класса Closure ". И потом простой пример:
class A {
private static $sfoo = 1;
private $ifoo = 2;
}
$cl1 = static function() {
return A::$sfoo;
};
$cl2 = function() {
return $this->ifoo;
};

$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";

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

такое вот первое мнение об этом.
Быстрый ответ:

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