Приветствую всех!
Поиск некоторой помощи с MVC в контексте PHP. В настоящее время я создаю небольшую легковесную структуру MVC для ускорения разработки приложений на работе. Это длинное жесткое разделение, исключающее встроенный код – по крайней мере, с многочисленными проектами, нависшими над головой и соблазном использовать его постоянно.
Я понимаю большинство основных требований MVC, и я уже начал переносить некоторые из моих существующих классов, которые находятся в шаблоне Singleton, как утилиты в моей новой структуре (это в основном базовые «обработчики» для выполнения сервисов сайта – класс для загрузка файлов, авторизация, завершенные запросы базы данных PDO, печать ошибок и т. д.)
То, что я не могу понять, двигаясь вперед после прочтения большого количества документации, – лучший подход к созданию экземпляров. В моем старом, неэффективном дизайне я бы отключил переменную $ _GET для переключения вывода из внутреннего вида. Просто уходя от интуиции, это кажется очень плохим способом выполнить работу.
Я просматриваю CodeIgniter, и кажется, что есть предопределенные функции для загрузки представлений в рамках этой структуры. Каков наилучший подход к такому дизайну приложения? Будет ли это «фабрика ссылок» на основе классов, которая использует одни и те же переменные для извлечения контента, выбора правильного файла представления и размещения его в потоке страниц? Кроме того, как можно включить новое представление между верхним и нижним колонтитулами в индекс корня без использования переключателей? Это единственное, что меня сбивает с толку – я очень надеюсь, что я достаточно четко сформулировал себя.
Спасибо всем, как всегда!
Я очень рекомендую «PHP-объекты, шаблоны и практику» Мэтта Зандстра. Хорошая часть книги посвящена созданию MVC-фреймворков и будет очень-очень полезна для вас.
Он охватывает эти шаблоны (которые вы также можете исследовать в другом месте):
В то время как я предлагаю идти с установленной, гибкой структурой (например, Zend), чтобы ответить на ваш вопрос, вот шаги, которые я им вижу (понимаю, что я переставал пытаться писать подобные вещи некоторое время назад, это основано на мое понимание существующих рамок, которые я использовал).
Это мой очень упрощенный подход к процессу.