Поскольку я недавно изучал MVC и ООП, это может помочь (в контексте того, что вы просили):
1. Архитектура MVC против трехуровневой архитектуры
Шаблон Model-View-Controller (MVC) разделяет приложение на три основных компонента: модель, представление и контроллер.
Модель : В большинстве вводных статей MVC модель упоминается просто как часть данных или часть базы данных приложения. Это не точно. Модель - это часть вашего приложения, которая работает с вашими данными, а также содержит все другие логические или бизнес-правила приложения, которые не являются частью Controller или View. Таким образом, большая часть кода приложения будет в классах Model.
Представления : Представления - это часть пользовательского интерфейса приложения, с которой пользователь взаимодействует с приложением. Пользовательский интерфейс обычно создается из данных модели.
Контроллер : Контроллер обрабатывает все пользовательские запросы (из представления) и отвечает на пользовательский ввод. Он передает пользовательские входные данные в модель, которая может обрабатывать их, и как только выходные данные готовы, контроллер выберет соответствующий вид для отображения выходных данных. При необходимости представление может связываться с моделью для получения выходных данных и их анализа для конечного пользователя.
И Вид, и Контроллер обмениваются данными с Моделью, но независимы друг от друга и поэтому могут быть легко изменены (это концептуальное «разделение» в MVC).
Шаблон MVC часто путают с трехуровневой архитектурой.
Из википедии: «Трехуровневая архитектура клиент-сервер, в которой пользовательский интерфейс, функциональная логика процесса (« бизнес-правила »), компьютерное хранилище данных и доступ к данным разрабатываются и поддерживаются как независимые модули, большинство часто на отдельных платформах ... На первый взгляд, три уровня могут показаться похожими на концепцию модель-представление-контроллер (MVC), однако топологически они различны. Основным правилом в трехуровневой архитектуре является клиент уровень никогда не связывается напрямую с уровнем данных , в трехуровневой модели вся связь должна проходить через средний уровень. Концептуально трехуровневая архитектура является линейной. Однако архитектура MVC является треугольной: представление отправляет обновляет контроллер, контроллер обновляет модель, а представление обновляется непосредственно из модели . "
[Источник: Многоуровневая архитектура ]
2. Классы и библиотека: Единицы кода
Это помогает думать о кодах в единицах при решении, как их организовать. Для небольших приложений класс - это достаточно хорошая «маленькая» единица. Когда приложения больше, библиотека может быть более подходящей. Проще говоря, библиотека - это просто набор классов, сгруппированных по их функциональности (или по прихоти и фантазии разработчиков :).
Например, у вас может быть группа классов, которые обрабатывают разные входные проверки, и вы можете объединить все это в один файл и назвать его «Библиотека проверки входных данных».
Классы и библиотеки облегчают повторное использование кода и делают кодирование более модульным, что облегчает управление.
При планировании приложения определите, какие классы будут в Model, View и Controller. Если ваше приложение имеет большой размер, вы также можете при необходимости организовать классы в библиотеки внутри каждого компонента.
Примечание: я давно не трогал PHP и не использовал codeigniter. Все, что я здесь сказал, широко применимо к разработке приложений MVC на любом языке ООП.