Итак, я начал изучать MVC (реальный MVC, а не фреймворк MVC) немного более подробно, и я пытаюсь разработать небольшую структуру. Я работаю, читая другие фреймворки, такие как Symphony и Zend, видя, как они выполняют свою работу, и пытаюсь реализовать ее самостоятельно.
Место, где я застрял, - это система маршрутизации URL:
<?php
namespace Application\Common;
class RouteBuilder {
public function create($name, $parameters) {
$route = new Route($name);
$route->resource = array_keys($parameters)[0];
$route->defaults = $parameters["defaults"];
$notation = $parameters["notation"];
$notation = preg_replace("/\[(.*)\]/", "(:?$1)?", $notation);
foreach ($parameters["conditions"] as $param => $condition) {
$notation = \str_replace($param, $condition, $notation);
}
$notation = preg_replace("/:([a-z]+)/i", "(?P<$1>[^/.,;?\n]+)", $notation);
//@TODO: Continue pattern replacement!!
}
}
/* How a single entry looks like
* "main": {
"notation": "/:action",
"defaults": {
"resource" : "Authentication",
},
"conditions": {
":action" : "(login)|(register)"
}
},
*/
Я просто не могу получить свою голову, обернутую вокруг. Что такое рабочий процесс приложения отсюда?
Создается шаблон, возможно, объект Route
, который хранится под объектом Request
или что-то в этом роде, а что? Как это работает?
P.S. Ищите настоящий, хорошо объясненный ответ здесь. Я действительно хочу понять эту тему. Я был бы признателен, если бы кто-то нашел время, чтобы написать настоящий подробный ответ.