Добрый день, делаю тестовый сайт на php с использованием mvc, по
этому топику. Но в нем не реализовано подключение к бд.
Каким образом я реализовал:
В core/model.php, создал метод db содержащий подключение к БД.
class Model
{
static function db()
{
define('HOST', 'localhost');
define('USER', 'blog');
define('PASS', '12345');
define('DB', 'blog');
$db = new mysqli(HOST, USER, PASS, DB);
if ($db->connect_errno) {
echo "Не удалось подключиться к MySQL: {$db->connect_error}";
}
return $db;
}
public function get_data()
{}
}
Далее в классе наследнике составляю запрос
class Model_Portfolio extends Model
{
public function get_data()
{
$link = self::db();
$query = "SELECT * FROM blog ORDER BY id DESC";
$result = $link->query($query);
while ($row = $result->fetch_assoc()) {
$articles[] = $row;
}
$link->close();
return $articles;
}
}
В контроллере соединяю модель и шаблон
class Controller_Portfolio extends Controller
{
function __construct()
{
$this->model = new Model_Portfolio;
$this->view = new View;
}
function action_index()
{
$data = $this->model->get_data();
$this->view->generate('portfolio_view.php', 'template_view.php', $data);
}
}
Ну, а на странице вывожу его простым циклом.
Насколько правилен такой подход, и/или как его улучшить, может быть я что-то упустил?
Всем спасибо за советы.