Логика системы такая.
1) Есть index.php. Этот файл возвращает в браузер разметку (картинки, формы, ссылки и другой HTML). (View)
2) Все действия с этой страницы обрабатываются файлом actions.php. (Controller)
3) Файл actions.php, для обработки действий, использует файл functions.php. (Model)
Пример
1) index.php генерирует разметку с "ссылками" на actions, например
<a href="https://site.com/actions/php?add_user">Создать пользователя</a>
При нажатии на эту ссылку происходит переход на файл actions.php или ajax запрос с данными.
2) Файл actions.php, при переходе на него выполняет указанное действие.
include __DIR__.'/common/functions.php');
// Действие - создать пользователя
if (isset($_GET['add_user']))
{
// Вот такая вот логика действия
// Вызываем функцию user_exist из functions.php
$exist=user_exist();
if ($exist==1)
{
// Вызываем функцию delete_user из functions.php
delete_user();
// Вызываем функцию add_user из functions.php
add_user();
// Возвращаем пользователя назад, на index.php
header('Location:index.php?&message=user_exist');
exit;
}
// Аналогично, вызываем функции из functions.php
if ($exist==0)
{
add_user();
header('Location:index.php?&message=user_created');
exit;
}
}
3) Ну а в файле functions.php хранятся все функции (или методы и т.д.).
// Соединение с БД (неважно кто как и где вызывает - просто пример)
function connect_to base($hostname, $username, $password, $basename)
{
mysql_connect($hostname, $username, $password) or die (mysql_error());
mysql_select_db($basename) or die (mysql_error());
mysql_query("set character_set_client ='utf8'");
mysql_query("set character_set_results ='utf8'");
mysql_query("set collation_connection ='utf8_general_ci'");
}
function add_user($someval)
{
connect_to base();
mysql_query("INSERT INTO `users` (`surname`,`name``) VALUES ('$surname','$name')");
do_some_action();
}
function delete_user($someval)
{
// Код
}
В общем, грубо говоря, со странички index.php от пользователя приходит действие/инфа.
Всё это передается actions.php, файл который решает, какие функции из файла functions.php и в каком порядке следует вызвать для выполнения этого действия (действие может быть сложным).
А файл functions.php содержит все функции-"кирпичики", комбинируя которые можно выполнять любые действия.
Может ли такой php код считается сделанным по паттерну MVC?
Ну и также не совсем понятно как, с точки зрения разработки, использовать MVC в качестве паттерна с другими паттернами?
Когда мы говорим о паттернах, мы чаще всего говорим о GOF - банда четырех и их 26 паттернах (одиночка, фабрика и т.д.)
А вот концепция MVC была описана Трюгве Реенскаугом в Xerox PARC.
То есть мы пишем наши системы по 2м паттернам? Фабрика и MVC например?