#php #model-view-controller #frameworks #pagination
#php #model-view-controller #фреймворки #разбивка на страницы
Вопрос:
Я написал небольшой MVC на PHP5 и хочу, чтобы модуль разбивки на страницы был добавлен к некоторым файлам в моем разделе / папке views..
Мне было интересно.. будет ли класс разбивки на страницы включен в раздел / папку контроллера или моделей?
В настоящее время я включил его в папку Models и вызывал функцию при необходимости..
Комментарии:
1. Кроме того, в чем разница, если бы я включил его либо в контроллеры, либо в модели?
2. Пожалуйста, покажите исходный код вашего MVC, чтобы на этот вопрос действительно можно было ответить. Обычно разбивка на страницы в контроллерах не выполняется, это просто некоторая утилита для работы с существующими моделями и / или другими структурами данных.
Ответ №1:
На мой взгляд, разбивка на страницы — это элемент управления, позволяющий пользователю указывать вашей базе данных (модели), какую часть данных он или она хочет видеть.
Итак, я бы выбрал модуль Controllers.
Ответ №2:
Ну, я думаю, лучшим подходом было бы создать папку helpers, а затем загрузить их в ваше приложение следующим образом :
function use_helper()
{
static $helpers = array();
foreach (func_get_args() as $helper)
{
if (in_array($helper, $helpers)) continue;
$helper_file = HELPER_PATH.DIRECTORY_SEPARATOR.$helper.'.php';
if (!file_exists($helper_file))
throw new Exception("Helper file '{$helper}' not found!");
include $helper_file;
$helpers[] = $helper;
}
}
Затем все, что вам нужно сделать, это создать pagination.php файл с вашим классом разбивки на страницы.
Когда вам это нужно, вы вызываете функцию
use_helper('pagination');
Отсюда, конечно, это зависит от вашего класса разбивки на страницы.
Надеюсь, это поможет.
Ответ №3:
я думаю, лучший подход — вызвать разбивку на страницы из представления, ссылаясь на этот MVC
Представление запрашивает модель, чтобы сгенерировать соответствующий пользовательский интерфейс (например, представление отображает содержимое корзины покупок). Представление получает свои собственные данные из модели. В некоторых реализациях контроллер может выдавать общую инструкцию представлению для рендеринга самого себя. В других моделях представление автоматически уведомляется моделью об изменениях состояния (наблюдателем), которые требуют обновления экрана.
и поскольку вы будете использовать этот класс почти в каждом представлении, вам следует создать помощник и включить этот класс внутрь этого помощника, чтобы все представления могли совместно использовать его методы