Общедоступные данные
Под общедоступным, в данном случае, считается возможное использование в классах контроллеров и подключаемых файлах папки
"views".
Функция getUrlByName() - даёт доступ к именованным маршрутам, которым назначено название с помощью метода
name().
Возвращает строковой URL адреса маршрута по его имени.
Если это динамический маршрут, то необходимо вторым параметром передать массив с
указанием замены переменных в адресе. Например, для маршрута:
Route::get('/{arg1}/{arg2}/third/', 'Динамический именованный маршрут')->name('Test');
Получение URL-адреса
"/first/second/third/" будет таким:
// В подключаемых файлах из папки "views"
<?php print getUrlByName('Test', ['arg1' => 'first', 'arg2' => 'second']); ?>
// В классах контроллеров
$url = getUrlByName('Test', ['arg1' => 'first', 'arg2' => 'second']);
Функция
getMainUrl() - возвращает относительный текущий URL.
Функция
getMainClearUrl() - возвращает относительный текущий URL без
GET-параметров.
Функция
getFullUrl() - принимает один аргумент в виде относительного URL и возвращает его полное(абсолютное) значение.
Функция
getStandardUrl() - стандартизирует полный или относительный URL, в качестве принятого аргумента, согласно значению константы
HLEB_PROJECT_ENDING_URL, и конвертирует кириллические адреса в нормальный вид (все вышеобозначенные функции стандартизируют по умолчанию).
Предназначено для внутренних URL проекта.
print getFullUrl(getMainClearUrl); // Полный адрес текущего URL без GET-параметров: "https://phphleb.ru/ru/v1/interaction/"
Взаимодействие в контроллерах
Объект
Request содержит значения из URL по совпадению с динамическим маршрутом (а также методы, взаимодействующие со служебными параметрами
$_SERVER и др.).
Например, при запросе
"site.com/first/" и наличии маршрута:
Route::before('TestMiddlewareBefore')->get('/{test}/')->controller('TestController')->after('TestMiddlewareAfter');
В каждом из контроллеров будет доступен объект Request c методом обращения
get():
...
use Hleb\Constructor\Handlers\Request;
...
var_dump( Request::get()); // array(1) { ["test"]=> string(5) "first" }
var_dump( Request::get('test')); // string(5) "first"
Переданные с контроллером значения предназначены для исключительного использования, представляют из себя массив с данными, передаваемый вторым необязательным аргументом в
метод
controller(). Строковые ключи этого массива преобразуются в аргументы метода класса контроллера. Например, если бы вызов был:
Route::get('/')->controller('TestController', ['Значение id', 'Значение name']);
В классе
"TestController" у метода
index() в таком случае должны быть два принимающих аргумента:
// Файл /app/Controllers/TestController.php
...
function index($id, $name) { ... }
...
redirect()
Функция
redirect() используется в контроллерах
before() и
controller(), но не в
after(), так как содержимое страницы уже будет выведено.
Принимает один обязательный строковой аргумент с URL адресом редиректа и второй необязательный числовой аргумент с кодом редиректа, по умолчанию 303.
redirect(getUrlByName('home'));
Получение пути к директориям
Функции
storage_path(), public_path() и view_path() позволяют получить строковое значение, содержащее полный путь соответственно к директориям
"/storage/public", "/public" и "/view".