Обьединение с namespace
This commit is contained in:
commit
8b38b2a3cc
90 changed files with 601 additions and 222 deletions
|
|
@ -4,7 +4,18 @@
|
|||
* Первичный контроллер контроллер страниц
|
||||
* @package system.controller
|
||||
*/
|
||||
class Controller_Front extends Controller_Action
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\Controller\Action,
|
||||
ctiso\Settings,
|
||||
ctiso\Database,
|
||||
ctiso\Collection,
|
||||
ctiso\Filter\ActionAccess,
|
||||
ctiso\Filter\ActionLogger,
|
||||
ctiso\Path;
|
||||
ctiso\UserMessageException,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class Front extends Action
|
||||
{
|
||||
|
||||
/** @var Shortcut */
|
||||
|
|
@ -18,16 +29,14 @@ class Controller_Front extends Controller_Action
|
|||
* @param Settings $_registry
|
||||
* @param Shortcut $_shortcut
|
||||
*/
|
||||
public function __construct($db, $settings, $default) // $db, $installer, $shortcut
|
||||
{
|
||||
public function __construct($db, $settings, $default) {
|
||||
parent::__construct();
|
||||
$this->settings = $settings;
|
||||
$this->db = $db;
|
||||
$this->default = $default;
|
||||
}
|
||||
|
||||
public function isLoaded($name)
|
||||
{
|
||||
public function isLoaded($name) {
|
||||
return isset($this->modules[$name]);
|
||||
}
|
||||
|
||||
|
|
@ -37,7 +46,7 @@ class Controller_Front extends Controller_Action
|
|||
* @param request $request Имя модуля
|
||||
* @return string
|
||||
*/
|
||||
public function loadModule($name, Collection $request, $controller = false)
|
||||
public function loadModule($name, Collection $request, $controller = null)
|
||||
{
|
||||
if ($this->isLoaded($name)) {
|
||||
$module = $this->modules[$name];
|
||||
|
|
@ -47,7 +56,9 @@ class Controller_Front extends Controller_Action
|
|||
$basePath = $this->settings['system']->readKey(['path', 'modules']);
|
||||
$moduleFile = Path::join($basePath, $name, 'classes', $controller ? $controller : $name);
|
||||
|
||||
$module = $this->loadClass($moduleFile, null, 'Module_');
|
||||
$ucname = ucfirst($name);
|
||||
$moduleClass = "Module\\$ucname\\$ucname";
|
||||
$module = new $moduleClass();
|
||||
if ($module) {
|
||||
// Инициализация модуля
|
||||
$modPath = Path::join($basePath, $name);
|
||||
|
|
@ -57,10 +68,10 @@ class Controller_Front extends Controller_Action
|
|||
$module->settings = $this->settings;
|
||||
$module->db = $this->db;
|
||||
// Ведение лога
|
||||
$logger = new Filter_ActionLogger($module);
|
||||
$logger = new ActionLogger($module);
|
||||
$logger->before = $this->loadSettings(Path::join($modPath, 'filter', 'logger.php'));
|
||||
// Управление доступом
|
||||
$module->access = new Filter_ActionAccess($logger);
|
||||
$module->access = new ActionAccess($logger);
|
||||
$module->access->access = $this->loadSettings(Path::join($modPath, 'filter', 'access.php'));
|
||||
|
||||
$module->setUp();
|
||||
|
|
@ -72,13 +83,14 @@ class Controller_Front extends Controller_Action
|
|||
return null; // throw new FileNotFoundException();
|
||||
}
|
||||
|
||||
public function execute(HTTPRequest $request)
|
||||
|
||||
public function execute(HttpRequest $request)
|
||||
{
|
||||
$name = explode("_", $request->get('module', $this->default));
|
||||
$name = explode("\\", $request->get('module', $this->default));
|
||||
if (count($name) >= 2) {
|
||||
$controller = $name[1];
|
||||
} else {
|
||||
$controller = false;
|
||||
$controller = null;
|
||||
}
|
||||
try {
|
||||
return $this->loadModule($name[0], $request, $controller);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue