Заготовка фреймворка

Печать RSS
572

Автор
Пацак
0
карта в ини файле:
[welcome]
default = "welcome"
path[default] = "modules\welcome\Welcome_Controller"
path[user] = "modules\welcome\User_Controller"
actions = "index;"
обработчик сегментов по карте
<?php
    private function _fetch_module() {
        // загружаем карту модулей
        $ini = parse_ini_file(CM_ROOT .'modules/map.ini', TRUE);
        // если модуль по первому сегменту найден
        if (isset($ini[$this->_segments[0]])) {
            // передаем имя модуля переменной
            $module = $this->_segments[0];
            // разбиваем строку с экшенами 
            $actions = explode(';', $ini[$module]);
            // передаем массив контроллеров переменной
            $controllers = $ini[$module]['path'];
            // если котроллер по второму сегменту найден
            if (isset($controllers[$this->_segments[1]])) {
                // записываем его в обьект
                $this->controller = $controllers[$this->_segments[1]];
                // если экшен по третьему сегменту найден
                if (isset($actions[$this->_segments[2]])) {
                    // записываем его в обьект
                    $this->action = $this->_segments[2];
                    return 0;
                }
                // или если экшен по второму сегменту найден 
            } elseif (isset($actions[$this->_segments[1]])) {
                // записываем котроллер по умолчанию в обьект
                $this->controller = $controllers['default'];
                // записываем экшен в обьект
                $this->action = $this->_segments[1];
                return 0;
            }
        }
    }
?>
Автор
Пацак
0
Закончил разработку MVC системы))
Тестируем!

Чатланин
0
если возникнет надобность переопределить метод, к примеру, _detect_uri в классе codemania\core\Request, то ничего не выйдет, т.к. метод приватный. хватит извращаться, смотри в сторону Symfony2. klass
Автор
Пацак
0
Виталик Альянс (28 Июня 2014 / 15:31)
если возникнет надобность переопределить метод, к примеру, _detect_uri в классе codemania\core\Request, то ничего не выйдет, т.к. метод приватный. хватит извращаться, смотри в сторону Symfony2. klass
на то он и приватный))))
тогда легче уж так https://github.com/KpuTuK/Neiron/tree/master/Neiron/Arhitecture/Kernel
в симфони то как раз на том и построено что просто берется контроль типа а именно обьект класса в обязательном наследующего этот интерфейс. а там уж дальше выбор ложиться на плечи того кто будет переопределять либо он полностью перепишет весь класс либо создаст дочерний существующему. а так как точек вызова именно того класса (в предидущем варианте фреймворка) огромная куча то нет смысла создавать дочерний класс и потом менять на него все вызовы геморно.
I

Пришелец
0
Какие новые функции 5.5 использует фреймворк?
Автор
Пацак
0
iNeeXT (23 Ноября 2014 / 13:45)
Какие новые функции 5.5 использует фреймворк?
пока ни каких)) даже на 5.3 возможно пойдет.
А

Оранжевые штаны
0
Проблематично оценивать, когда не понимаешь, зачем это нужно ))
Автор
Пацак
0
27. Башка, что оценивать?
А

Оранжевые штаны
0
28. KpuTuK, ну как бэ ты просил критиковать фреймворк.
Автор
Пацак
0
29. Башка, я "тот" (от 14.02.14) просил критиковать)) "этот" (https://github.com/KpuTuK/Neiron/) еще не фреймворк
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск