Search
Write a publication
Pull to refresh
0
0

User

Send message

Вот и я об том, что использовать что-то надо в соответствии с задачей. Не более.

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

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

Но авторизацию-то в обоих случаях придется писать ))) (я не говорю про большие фреймворки, я пока только про мелочевку)

Вот теперь стало понятнее. с одной стороны. а с другой, появляется глобальный вопрос, для чего так мощно усложнять?.

Почему от этого всего не оставить только :

$request = new Request();
$path = $request->getPath();

А дальше примитивная магия:

Это для примераswitch ($path){
	case '\':
  	echo('Hello, World!');
    break;
  case '\users':
    echo('USERS');
    break;
  case '\users\ivan':
  	echo('Hello, Ivan');
    break;
  default:
  	echo('404');
    break;
}

Это для примера. а не в качестве настойчивости на своей точке зрения.

Пока вот это даже внешне выглядит сильно симпатичнее и понятнее, чем приведенные примеры конфигурации и запуска суммарно.

Пока для меня примеры выглядят как попытка забить гвоздь перфоратором.

Посмотрел на slim. Таже - фигня в плане логики. Нифига мой мозг не принимает подход, в котором мы:

  1. При получении запроса делаем $app->router->get(маршрут, обработчик маршрута ) , то-есть,

  2. Мы при получении запроса СОЗДАЕМ и маршрут и его обработчик.

  3. При этом создаваемый маршрут никоим образом не связан с запросом.

  4. И тут же этот маршрут обрабатываем.

    вместо того, чтобы сделать $handlerResult = $app->routeHandler($app->router->get($app->request->getPath());

То-есть вопрос-то не конкретно к приведенному автором примеру, а в принципе почему так? я это к чему, вот есть у меня, например, 50 страниц сайта с единой точкой входа. Моя прямолинейная логика говорит примерно следующее:

  1. мне надо создать массив маршрутов, вида

[
	'маршрут1' => Array(параметры маршрута1),
  'маршрут2' => Array(параметры маршрута2),
  и т.д.
]
  1. при получении запроса напрмер localhost:8080/маршрут3, получить путь 'маршрут3' из URI

  2. поискать путь в маршрутах и получить параметры обработки маршрута

  3. обработать маршрут и выдать результат.

То есть по факту 3 вопроса пока по крупному:

  1. Почему маршрут никак очевидным образом не ориентированный на URI СОЗДАЕТСЯ при получении запроса, а не ИЩЕТСЯ на основании URI запроса?

  2. Почему маршрут Создается вместе с обработчиком (что для 50 страниц сайта надо 50 обработчиков/ 50 ссылок на обработчик в маршрутах? А если обработчик "сложносочиненный"? А сложносочиненному обработчику сразу надо дать все данные для обработки - таки их же для начала построить надо из чего-то?)?

  3. Для чего при каждом запросе СОЗДАВАТЬ маршрут заново?

Ну вдруг там дальше все наладится и станет хорошо, а этот пост "затравочный".

Посмотреть ничего не мешает и посмотрю, обязательно. Яж не про реализацию минифреймворков на гитхаб, а про конкретно написанное здесь.

Ну и еще сразу вопросы. Возможно, конечно моя логика вывернута, но:

  1. Условно есть запрос, ну например, localhost:8080/contact/all

  2. Есть кусок кода, $app->router->get('/contact/', ... ); в index.php

Кусок кода из пункта 2 создает в $routes маршрут.

В моем понимании логично было бы get-том что-то получать, а не создавать.

Ну и в свете этого:

- может Request имеет смысл внутрь Application?

- и $app->router->get($app->request->getPath(), ...); и чтоб он не создавал маршрут, а отдавал что-то ?

- А $routes в Router создать загодя?

Да очередной Hello, World, но полезный для таких неучей, как я, например.

Реакция "гуру", познавших дзен - весьма странная.

Автор, продолжайте. Вполне интересно.

Вот только Fatal error: Uncaught ArgumentCountError: Too few arguments to function app\core\Application::__construct()

$ROOT_DIR - а- то конструктору не даем нигде.

Information

Rating
Does not participate
Registered
Activity