Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для rean1mator
84 / 84 / 1
Регистрация: 19.01.2011
Сообщений: 442

Базовый контроллер и архитектура фреймворка

03.07.2014, 23:10. Показов 1295. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте! Ради самообучения я, как и многие, начал писать свой фреймворк. Все бы ничего, но довелось наткуться на проблему архитектуры, связанную с пробелом в понимании такого понятия, как базовый контроллер.

Я понимаю, что базовый контроллер, также как базовая модель, должен реализовывать функционал общий для всех контроллеров модулей/страниц, которые будут его наследовать.

Что мне не понятно:
- какой функционал обычно считается общим для всех контроллеров модулей/страниц?
- как обращаться с базовым контроллером?

Немного раскрою второй пункт из списка непонятных мне моментов.

Сейчас у меня схема работы фреймворка такова:
1) входим в index.php
2) index.php вызывает основной класс фреймворка, например он называется application.
3) далее мы должны разроутиться и понять, какой контроллер нам необходимо вызвать и application вызывает класс роутера
4) роутер разобрался, какой контроллер вызывает и сам его вызывает
5) начинает работать вызванный роутером контроллер и всё остальное до вывода страницы.

Где в этом порядке работы должен быть базовый контроллер?
Имею две догадки:
1) роутер не должен сам вызывать контроллеры модулей/страниц, а должен вызвать базовый контроллер, передать ему всё, что разроутил (запрошенный контроллер, экшен, доп.параметры), а базовый контроллер уже вызывает контроллеры модулей/страниц
2) роутер так и продолжает вызывать контроллеры модулей/страниц. А базовый контроллер только наследуется дочерними, тем самым предоставляя им функционал, общий для всех контроллеров.

Благодарю всех, кто откликнется и поможет разобраться
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.07.2014, 23:10
Ответы с готовыми решениями:

SM контроллер шины, сетевой контроллер и ethernet контроллер
подскажите где скачать sm контроллер шины, сетевой контроллер и ethernet контроллер для делл инспирон 6400.

В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу
Добрый день. При запуске программы выскакивает вот такая вот ошибка. В чем может быть проблема и как ее исправить?

архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников
сабж. кто чем может помочь юному,непонемающему в этой области человеку.желательно книгами.спасибо.

3
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.07.2014, 09:19
какой функционал обычно считается общим для всех контроллеров модулей/страниц?
Тот, который встречается более, чем в одном контроллере (это Вы сами должны посмотреть, что встречается во многих контроллерах).
как обращаться с базовым контроллером?
Расширять его (extends).
2) роутер так и продолжает вызывать контроллеры модулей/страниц. А базовый контроллер только наследуется дочерними, тем самым предоставляя им функционал, общий для всех контроллеров.
Верно.
1
 Аватар для rean1mator
84 / 84 / 1
Регистрация: 19.01.2011
Сообщений: 442
04.07.2014, 20:34  [ТС]
Цитата Сообщение от lyod Посмотреть сообщение
какой функционал обычно считается общим для всех контроллеров модулей/страниц?
Тот, который встречается более, чем в одном контроллере (это Вы сами должны посмотреть, что встречается во многих контроллерах).
А можно хотя бы пару примеров, чтоб понимать более точно?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.07.2014, 08:20
rean1mator, Вы не понимаете что значит "встречается более, чем в одном классе"? Вот самый простой (может такое никогда нигде и не встретится, но зато понятно):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
# Класс номер раз
    class Test{
        private function foo(){
            $this->test = 1;
        }
    }
    
    # Класс номер два
    class Test2{
        private function foo(){
            $this->test = 1;
        }
    }
Видите, у них foo() реализует одно и то же. Можно значит её вынести. Пример:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Общий
    class Base{
        protected function foo(){
            $this->test = 1;
        }
    }
    
    # Класс номер раз
    class Test extends Base{
        
    }
    
    # Класс номер два
    class Test2 extends Base{
        
    }
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2014, 08:20
Помогаю со студенческими работами здесь

Asus K53S -sm контроллер шины -контроллер универсальный последовательной шины USB и с. контроллер
Люди добрые!! помогите пожалуйста найти драйвера на windows 7 32-b -sm контроллер шины -контроллер универсальный последовательной шины...

Ошибка "в указанном dsn архитектура драйвера и архитектура приложения"
Вот такая ошибка при нажатии на кнопку "Проверить соединение" Я прочитал, что это возможно из за того, что моя система 64, а...

Организация подключения для передачи данных контроллер-сервер-контроллер, как?
Добрый день! На даче стоит контроллер от ab-log.ru МегаД, чудесная штука, локально в пределах доступа вай-фая все включает/выключает. ...

Зачем нужен контроллер API если есть контроллер MVC?
Вопрос с собеседования. И так, понятно что API контролер ограничен относительно контроллера MVC. Не смог ответить зачем иммено его создали,...

Контроллер SPI. Как выбрать контроллер из списка?
Всем доброго дня Задача получить один из двух контроллеров SPI в системе. SpiConnectionSettings spiSettings; SpiController...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru