Духовность™
Продвинутый новичок
1 контроллер == 1 логическая страница сайта?
Фаулер писал вот о том, что на каждый клик мыши должен быть свой контроллер. Т.е на каждый запрос должен быть свой программный код. Отсюда возникает вопрос, а верно ли утверждение, что каждый контроллер представляет собой фактически обработчик для ОДНОЙ логической страницы сайта? Т.е. может ли контролер быть универсальным для двух разных страниц приложения?
Я почему спрашиваю. У меня есть вот такой контроллер для admin-части сайта, вызывается по адресу /admin/user/delete/?id=5
В виду того, что в контроллере указаны специфические пути, по которым делается redirect, я не могу этот контроллер вызывать в каком-то другом контексте, например в контексте удаления пользователей ВНЕ административного интерфейса. Т.е. получилось что 1 контроллер == 1 логической страницы.
Правильно ли это или нет? Или контроллер нужно проектировать так, что бы его можно было вызывать в любом другом месте приложения?
Фаулер писал вот о том, что на каждый клик мыши должен быть свой контроллер. Т.е на каждый запрос должен быть свой программный код. Отсюда возникает вопрос, а верно ли утверждение, что каждый контроллер представляет собой фактически обработчик для ОДНОЙ логической страницы сайта? Т.е. может ли контролер быть универсальным для двух разных страниц приложения?
Я почему спрашиваю. У меня есть вот такой контроллер для admin-части сайта, вызывается по адресу /admin/user/delete/?id=5
PHP:
<?php
class BackendUserDeleteController extends BackendUserCommonController
{
public function run()
{
parent::run();
if (!isset($this->request->getRequest()->id))
{
$redirect = new Redirect();
$redirect->setType('alert');
$redirect->setMessage('Не определен ID пользователя');
// переадресуем на /admin/user/main
$redirect->setRedirectUrl( Redirect::implode($this->getEndAlias(),
$this->getModuleAlias(), 'main' ));
$redirect->run();
}
$this->user_mapper->delete($this->user);
$redirect = new Redirect();
$redirect->setMessage('Пользователь %user_name% успешно удален');
$redirect->addParam('user_name', Format::hsc( $this->user->getFullName() ));
// переадресуем на HTTP_REFERER
$redirect->setRedirectUrl($this->request->getRequest()->referer);
$redirect->run();
}
}
?>
Правильно ли это или нет? Или контроллер нужно проектировать так, что бы его можно было вызывать в любом другом месте приложения?