У меня есть следующий пример, в котором я склонен использовать пару классов для создания простого веб-приложения.
Иерархия файлов выглядит так.
> cupid
- libs
- request
- router
- database
- view
- bootstrap.php
- index.php
index.php
просто вызывает bootstrap.php
, который, в свою очередь, содержит что-то вроде этого:
// bootstrap.php
namespace cupid
use request, router, database, view;
spl_autoload_register(function($class){ /* autoload */ });
$request = new view;
$response = new response;
$router = new router;
$database = new database;
$router->get('/blog/{id}', function($id) use ($database, $view) {
$article = $database->select("SELECT blog, content FROM foo WHERE id = ?",[$id]);
$view->layout('blogPage', ['article'=>$article]);
});
Как вы, вероятно, можете сказать, моя проблема в этой строке:
$article = $database->select("SELECT blog, content FROM foo WHERE id = ?", [$id]);
Который я не хочу использовать, и вместо этого попробуйте подход "Object Object Model".
Теперь, учитывая, что я добавлю другую папку под названием domain, blog.php
> cupid
- domain
- Blog.php
- libs
...
И заполните blog.php
строками таблицы сопоставления свойств, а также getter и seters..
namespace App\Domain;
class Blog {
private $id, $title, $content, $author;
public function getTitle(){
return $this->title;
}
public function setTitle($title){
$this->title = $title;
}
...
}
Мой вопрос: Предполагая, что мое понимание DOM до сих пор является правильным, и что у меня есть класс CRUD/ORM или оболочка PDO для запроса базы данных;
"Как я могу связать вместе, т.е. модель блога с оболочкой PDO для извлечения блога внутри моего загрузочного файла?".