Делаю небольшой сайт-блог на PHP. Архитекуру сделал на основе этой статьи -
https://habrahabr.ru/post/150267/.
К сути: Метод модели, возвращающий статьи из БД принимает два необязательных аргумента - №страницы и количество статей на страницу.
Как я понял, обработка GET и POST массивов должна находиться в контроллере. А как правильнее реализовать проверку на существование переменных и на основе их наличия/отсутствия вызывать метод модели с нужными параметрами?
В голову приходит два варианта:
1 - Проверять наличие, и на основании результата вызывать метод без параметров/с одним параметром/с думя параметрами
2 - Если переменные не заданы, заполнять их стандартными значениями ещё в конструкторе контроллера.
Метод модели:
public function get_data($articles_pp = 2, $page = 1)
{
$pdo = self::connect();
for($i=($articles_pp*$page); $i>=$page*$articles_pp-($articles_pp-1); $i--)
{
$data = $pdo->query('SELECT * FROM articles WHERE id = '.$i);
$return_arr[$i] = $data->fetch();
}
return $return_arr;
}
Контроллер:
public $articles_pp;
public $page;
function __construct()
{
$this->model = new Model_Main();
$this->view = new View();
//if(isset($_POST['page'])) $this->page = $_GET['page'];
$this->page = $_GET['page'];
$this->articles_pp = $_GET['articles_pp'];
}
function action_index()
{
$data = $this->model->get_data($this->articles_pp, $this->page);
$this->view->generate('main_view.php', 'template_view.php', $data);
}