Обьединение с namespace

This commit is contained in:
CORP\phedor 2018-03-28 11:15:16 +03:00
commit 8b38b2a3cc
90 changed files with 601 additions and 222 deletions

View file

@ -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);