Духовность™
Продвинутый новичок
Маршрутизация или как это называется...
Для понимания данного примера можно посетить http://adverts.ru/admin/user
ибо работает реальный пример на основе примера показанного ниже.
Вот так у меня запускается мой мега-супер-фреймворк:
index.php:
Как видно, у меня есть карта всех существующих URL адресов (без учета Query_String). URL строятся стандартно: /модуль/контроллер/(другие возможные параметры идущие в скрипт)
Нельзя в систему добавить какую-то страницу, не прописав вот таким образом следующие элементы:
Скажите, это хорошая практика вот так, через карты "создавать" виртуальные пути?
Аппликейшен пока сырой: http://adverts.ru/app.txt
Для понимания данного примера можно посетить http://adverts.ru/admin/user
ибо работает реальный пример на основе примера показанного ниже.
Вот так у меня запускается мой мега-супер-фреймворк:
index.php:
PHP:
<?php
if (empty($_REQUEST['_path']))
{
$_REQUEST['_path'] = '/index';
}
require('./kernel/configuration.php');
// правила URL
$map = array
(
array( 'pattern' => '~^/admin/(user)/?$~',
'module' => 'User',
'controller' => 'BackendMain',
'aliases' => array('_module_alias'),
'additional' => array('_controller_alias' => 'main'),
),
array( 'pattern' => '~^/admin/(user)/(main)/?$~',
'module' => 'User',
'controller' => 'BackendMain',
'aliases' => array('_module_alias', '_controller_alias'),
),
array( 'pattern' => '~^/admin/(user)/(edit)/?$~',
'module' => 'User',
'controller' => 'BackendEdit',
'aliases' => array('_module_alias', '_controller_alias'),
),
array( 'pattern' => '~^/admin/(user)/(delete)/?$~',
'module' => 'User',
'controller' => 'BackendDelete',
'aliases' => array('_module_alias', '_controller_alias'),
),
// Ajax - country, region, city
array( 'pattern' => '~^/(ajax)/(country)/?$~',
'module' => 'Ajax',
'controller' => 'Country',
'aliases' => array('_module_alias', '_controller_alias'),
),
array( 'pattern' => '~^/(ajax)/(region)/?$~',
'module' => 'Ajax',
'controller' => 'Region',
'aliases' => array('_module_alias', '_controller_alias'),
),
array( 'pattern' => '~^/(ajax)/(city)/?$~',
'module' => 'Ajax',
'controller' => 'City',
'aliases' => array('_module_alias', '_controller_alias'),
),
);
try {
$application = new Base_Application();
$application->setMaps($map);
$application->run();
} catch (Exception $e) {
// ...
}
?>
Нельзя в систему добавить какую-то страницу, не прописав вот таким образом следующие элементы:
PHP:
array
(
// для URL /admin/user/?
'pattern' => '~^/admin/(user)/?$~',
// используется модуль User
'module' => 'User',
// и контроллер под названием BackendMain
'controller' => 'BackendMain',
// переменная объекта Request _module_alias будет
// иметь значение user - первое значение в скобках из паттерна URL.
// можно сколь угодно назначить "алиасов", т.е. сколько значений в скобках - ()
// столько и алиасов.
'aliases' => array('_module_alias'),
// дополнительно создаем переменную объекта Request
// _controller_alias со значением main - это алиас контроллера
// алиасы нужны для построения URL в шаблонах...
'additional' => array('_controller_alias' => 'main'),
),
Аппликейшен пока сырой: http://adverts.ru/app.txt
