В MVC нет ничего волшебного. Его цель - разделить взаимодействие с пользовательским интерфейсом на три отдельные роли. Важное разделение - это разделение между уровнем модели и представлением. Уровень представления состоит из Controller (обрабатывает и делегирует запрос от пользовательского интерфейса к модели) и View (визуализирует данные модели).
Ваша модель является вашим основным приложением. Скорее всего, он сам по себе многоуровневый, например, в слой доступа к данным (ваш материал AdoDB), модель домена и уровень обслуживания . То, как вы организуете модель, зависит от приложения, которое вы хотите построить. С MVC важно сохранять независимость модели от презентации. Ваше приложение должно быть в состоянии решить проблему, для которой оно было написано, без UI. UI - только один интерфейс сверху.
В основном, пока ваш контроллер поддерживается тонким и делает это
class SomeController
{
public function someAction()
{
$input = filter_input(/* ... */);
$adoDb = $this->getModel('MyAdoDbClass');
$newData = $adoDb->doSomethingWithInput($input);
$this->getView()->setData($newData);
$this->getView()->render();
}
}
и не это
class SomeController
{
public function someAction()
{
$input = filter_input(/* ... */);
$adoDb = new AdoDb;
/*
all the code that belongs to doSomethingWithInput
...
*/
echo '<html>';
/*
all the code that should belongs to the View ...
*/
}
}
ты в порядке. Как я уже сказал, в этом нет ничего волшебного. Ты должен держать их отдельно.
Я предлагаю вам взглянуть на другие фреймворки, чтобы увидеть, как они подходят к MVC. Это не значит, что вы должны копировать или использовать их, но попытайтесь узнать, как они работают с MVC. Также взгляните на статью Расмуса Лердорфа: PHP-фреймворк без фреймворка