[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обсуждение инфраструктуры
Страницы: 1, 2, 3
TMake
Отсюда
- - - - - - - - - - - - - - - - - - - - - - - - -

лучше место поиска контроллеров вынести в конфиг.
twin
Цитата (TMake @ 6.09.2016 - 06:17)
лучше место поиска контроллеров вынести в конфиг.

В конфиге будут только настройки. Никакого функционала. Будет конфигуратор: класс, орабатывающий конфигу. Но он не имеет отношения к фронт-контроллеру.

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

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

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

user posted image
Guest
Какие лютые велосипеды
Arh
twin
Цитата
Но это и есть KISS

Зачем тут фронт-контроллер вынесен в класс?
Он понадобится ещё в к каком то месте?
Просто какая то недосказанность, говоришь что обойдёмся без прослойки, а потом сразу же одноразовый функционал выносишь в класс.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Guest @ 6.09.2016 - 06:31)
Какие лютые велосипеды

Для того и тема. smile.gif
Кто не умеет ездить на велосипеде, пусть идет на автобус.
Цитата (Arh @ 6.09.2016 - 06:33)
Зачем тут фронт-контроллер вынесен в класс?
Он понадобится ещё в к каком то месте?
Просто какая то недосказанность, говоришь что обойдёмся без прослойки, а потом сразу же одноразовый функционал выносишь в класс.
Почему недосказанность... Вроде несколько раз написал, что это еще не всё. Там будут еще методы позже. Тот же генератор 404 как минимум. Потому и класс.

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

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

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

user posted image
Arh
twin
Цитата
Там будут еще методы позже. Тот же генератор 404 как минимум.

Может сам генератор сделать отдельным классом?
Как ты будешь проверять наличие страницы в \App\Controllers\PageController?
По идее он сам будет проверять, а как он будет генерировать 404? По идее используя какой то готовый генератор.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
killer8080
Цитата (twin @ 6.09.2016 - 09:26)

    /**
    * Инициализация GET
    *
    * @param array $key
    * @param array $default
    *
    * @return string
    */
    function iniGET($key, $default = '')
    {
        return (!empty($_GET[$key])) ? $_GET[$key] : $default;
    }

И зачем сие? Во первых название сбивает столку, вызывая ассоциацию с ini_get(), во вторых есть же нативная filter_input(), которая еще и функциональней твоей обертки. Где же KISS?
Гость_Invis1ble
... в-третьих, ошибки в phphdoc, в-четвёртых, функция ничего не инициализирует, а лишь возвращает, ...

Цитата (killer8080 @ 6.09.2016 - 10:56)
Где же KISS?

Тс-с-с! Не рушь мирок человеку biggrin.gif
twin
Цитата (Arh @ 6.09.2016 - 06:49)
Может сам генератор сделать отдельным классом?

А что там делать, там три строчки кода. Нафига отдельно? Выбор нужной страницы (в том числе и 404), это обязанность как раз фронт-контроллера.
Цитата (killer8080 @ 6.09.2016 - 06:56)
И зачем сие? Во первых название сбивает столку, вызывая ассоциацию с ini_get()
Хорошее замечание. Стоит прислушаться.
Цитата (killer8080 @ 6.09.2016 - 06:56)
во вторых есть же нативная filter_input(), которая еще и функциональней твоей обертки. Где же KISS?
Ну вопервых это не профильная функция. Она для фильтрации. Вот засунуть её в мою функцию может и стоит.
Во вторых, она не принимает дефолтного значения. А это иногда очень удобно.
А в третьих, не факт, что всегда будет нужен чистый GET. При желании можно затолкать в неё Request. И тогда можно и ЧПУ заюзать.
Цитата (Гость_Invis1ble @ 6.09.2016 - 07:09)
в-третьих, ошибки в phphdoc
да, точно. Сейчас все исправим. smile.gif
Цитата (Гость_Invis1ble @ 6.09.2016 - 07:09)
функция ничего не инициализирует, а лишь возвращает
Принято говорить - "инициализация переменных". Но впрочем не важно. Название действительно стоит изменить.


UPD Исправил. Так действительно лучше будет.

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

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

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

user posted image
TMake
twin ты не понял, у тебя прописан путь поиска прямо в методе, что ведет к жесткой привязоности к структуре, вынеси App/Controllers в конфиг
$controller = $this->config[self::PATH_APP_CONTROLLERS]. $controllerName .'Controller';
Гость_Invis1ble
Цитата (twin @ 6.09.2016 - 09:26)
(!empty($_GET[$key]))

Почему используется empty()? Ноль ты не уважаешь?
И зачем там скобки?

Цитата (twin @ 6.09.2016 - 11:20)
А во вторых, не факт, что всегда будет нужен чистый GET. При желании можно затолкать в неё Request. И тогда можно и ЧПУ заюзать.

А тут уже твой любимый YAGNI.



twin
Цитата (TMake @ 6.09.2016 - 07:25)
twin ты не понял, у тебя прописан путь поиска прямо в методе, что ведет к жесткой привязоности к структуре, вынеси App/Controllers в конфиг

Вот этого точно не требуется. Так можно сползти к "мягкому кодированию". Это претензия на универсальность и не нужное усложнение, оправданное только в фреймворках. В конкретном приложении такая настройка - дело лишнее.
Цитата (Гость_Invis1ble @ 6.09.2016 - 07:28)
Почему используется empty()? Ноль ты не уважаешь?
И зачем там скобки?
Исправил уже.
Цитата (Гость_Invis1ble @ 6.09.2016 - 07:28)
А тут уже твой любимый YAGNI.
Нисколько. Во первых, ничего нельзя доводить до крайностей. Во вторых - это приятный бонус. Функция такая все равно нужна. Хотя бы ради дефолтных значений и сокращения кода тернарника.

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

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

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

user posted image
Guest
Цитата (twin @ 6.09.2016 - 11:37)
Исправил уже.

Цитата (twin @ 6.09.2016 - 09:26)
    /**
    * Инициализация GET
    *
    * @param string $key
    * @param string $default
    * @param int $filter
    *
    * @return string
    */
    function takeGET($key, $default = null, $filter = FILTER_DEFAULT)
    {
        $param = filter_input(INPUT_GET, $key, $filter);
        return (!empty($param) || $param == 0) ? $param : $default;
    }




Цитата (twin @ 6.09.2016 - 09:26)
Инициализация GET

Так где там GET инициализируется? Инициализация - это задание значения.

Цитата (twin @ 6.09.2016 - 11:37)
@param string $default

Цитата (twin @ 6.09.2016 - 11:37)
@return string

Массивы в php уже отменили?

Цитата (twin @ 6.09.2016 - 11:37)
(!empty($param) || $param == 0)

Ты меня разочаровываешь.
var_dump(empty([])); // Что выведет?

var_dump([] == 0); // А это?
twin
Цитата (twin @ 6.09.2016 - 08:09)
Так где там GET инициализируется? Инициализация - это задание значения.
Ладно, распишу подробнее. Черт дернул меня phpdoc писать. :)

// Инициализация переменной из GET параметра.
Так понятнее будет?
Цитата (Guest @ 6.09.2016 - 07:51)
Массивы в php уже отменили?
В GET нет массивов. Даже int нету. Только строки, да будет тебе известно.
Цитата (Guest @ 6.09.2016 - 07:51)
Ты меня разочаровываешь.
Ты меня тоже. Где ты видел такие ключи массивов?

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

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

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

user posted image
Гость_Invis1ble
Цитата (twin @ 6.09.2016 - 12:09)
// Инициализация переменной из GET параметра.

а если я вот так использую твою функцию:
echo takeGET('foo');

то какая переменная у меня инициализируется?

Цитата (twin @ 6.09.2016 - 12:09)
В GET нет массивов. Даже int нету. Только строки, да будет тебе известно.

МУАХАХАХ! Это пять! Ясно-понятно, так и запишем: twin не знает о возможности передачи массивов через GET.
Быстрый ответ:

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