[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Флудильня.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Invis1ble
Цитата (twin @ 14.02.2015 - 23:44)
Цитата
3. Функцию return в автозагрузке можно использовать, но нельзя использовать порождение исключений, подробно об этом можно почитать в интернете.

А что далеко ходить в интернет, когда в вашем любимом PSR написано:
Цитата
В реализациях автозагрузчика НЕДОПУСТИМО выбрасывать исключения, НЕДОПУСТИМО вызывать ошибки любого уровня и НЕ СЛЕДУЕТ возвращать значение.
И пусть это значение null, однако.

здрасте, дрозды

function foo() {}

var_dump(foo());

объяснения нужны? :D

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

volter9
twin
Хоть и deprecated, ну может ему нравится, Вам же никто не запрещает использовать классы как контейнеры для функций, к тому же его autoloader похож на PSR-0 autoloader, сами сравните smile.gif :
http://www.php-fig.org/psr/psr-0/ru/

_____________
Мой блог
OleKh
Проблема в том, что нет обоснованных доказательств того, что использование статических методов и свойств :: без создания экземпляра класа (new) может считаться как императивное программирование (и даже не чистое).

Например (предположительно) метод, вызванный через созданный экземпляр класса, может использовать меньше ресурсов памяти чем статичный метод.

Из мануала известно, что экземпляр класса создается в переменной (new) . Оператор разрешения области видимости :: также что-то создает, но ничего нет об этом в мануале.

И если допустить, что класс который содержит статические методы после обращения через :: загружается в память весь и в таком классе могут быть n-е кол-во методов, а в сравниваемом экземпляре класса созданном через (new ) 1 пустой метод, тогда выгода от статических методов становится под сомнение.

Отсюда не понятен подход к ООП чисто на :: с ограничением (new).
twin
Invis1ble
Ты не видел первоисточника. Там было так:
    if (!file_exists($fileName)) {
return;
}

Упс... Видел наверно. Тогда я тебя не понял. Одно дело ничего не вернуть, естественно null будет. Другое дело этот null вернуть. А это не рекомендовано PSR. Вообще не понятно, куда возвращать. Там void должно быть по определению.

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

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

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

user posted image
twin
volter9
Да знаю я это давным давно. И еще раз говорю - это прошлый век. PSR-0 сами фиговцы объявили устаревшим и разработали на замену PSR-4. А там все так, как я и описал. Кроме _once. Тут да, признаю, что зря наехал.

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

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

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

user posted image
Invis1ble
Цитата (twin @ 15.02.2015 - 00:16)
Invis1ble
Ты не видел первоисточника. Там было так:
    if (!file_exists($fileName)) {
return;
}

В каком это смысле "не видел первоисточника"? Вот в посте от chee http://phpforum.su/index.php?showtopic=0&v...dpost&p=3067465 те же строки кода. Вполне себе распространенный приём "выхода" из функции, дабы не плодить вложенность.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Написал UPD выше.

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

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

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

user posted image
Zzepish
Oyeme
если я пишу что-то по-своему- это не значит, что я пишу говнокод
twin
Цитата
Вполне себе распространенный приём "выхода" из функции, дабы не плодить вложенность.
Не в этом случае. Тут нужно в условие require было ставить. Без инверсии естественно. Тогда было бы грамотно.

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

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

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

user posted image
Invis1ble
Цитата (twin @ 15.02.2015 - 00:16)
Invis1ble
Ты не видел первоисточника. Там было так:
    if (!file_exists($fileName)) {
        return;
    }

Упс... Видел наверно. Тогда я тебя не понял. Одно дело ничего не вернуть, естественно null будет. Другое дело этот null вернуть. А это не рекомендовано PSR. Вообще не понятно, куда возвращать. Там void должно быть по определению.

типа void в php не существует, это псевдотип и на самом деле в любой функции даже без return будет неявно возвращен null
тебе бы самому основы подучить не мешало :)

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Invis1ble
Цитата (twin @ 15.02.2015 - 00:26)
Цитата
Вполне себе распространенный приём "выхода" из функции, дабы не плодить вложенность.
Не в этом случае. Тут нужно в условие require было ставить. Без инверсии естественно. Тогда было бы грамотно.

Результат будет идентичный. Функция вернет null.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Zzepish
OleKh
расшифруй слово ООП и не имей никому мозг
twin
Invis1ble
Цитата
Результат будет идентичный. Функция вернет null.
Функция автолоада ничего возвращать не должна, ибо некуда. Не я это придумал. Это прописано в PSR, на который тут постоянно ссылаются. Я бы мог еще понять, если бы дальше был код и нужно было бы остановить выполнение. Тогда можно и забить, ибо это рекомендация, а не стандарт. Но не тут. И уж если назвался груздем - полезай.
В примере из PSR-0 ретурна кстати нет, это все ТС навоял.

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

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

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

user posted image
twin
OleKh
Причем тут устройство PHP. Важно не это, а идеология. Я выше описал, что это. В ООП должны взаимодействовать объекты. Объект, это кто/что действует. В императиве нет объектов. Там никто не действует, нет сущностей.

Вася взял лопату и начал копать - ООП
Взять лопату и начать копать - императив.

Вот и все, не нужно рыться в классах. Это инструменты, а не идеология.

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

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

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

user posted image
Invis1ble
twin
Я не говорю, что у него сделано идеально. Да, можно было написать if (file_exsits()) { require } и на этом закончить функцию. Мне кажется, что это просто неотрефакторенный кусок кода. Мой посыл в другом. Я ведь показал пример с функцией foo(), в которой нет явного return'а, тем не менее она возвращает null. Тоже самое вернет и "правильный" вариант автозагрузчика.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

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