MVC を簡単な方法で理解するために (私は自分自身のデモ アプリケーションを作成しようとしています)、Symfony2 のSymfony2 対 Flat PHPの資料に従いました。「改善」しようとして途中でいくつかのものを変更しました。いくつかの OOP プラクティスを追加するコードでは、DB クラスを作成し、モデルを次のように変更しました。
<?php
// model.php
function open_database_connection()
{
$link = mysql_connect('localhost', 'myuser', 'mypassword');
mysql_select_db('blog_db', $link);
return $link;
}
function close_database_connection($link)
{
mysql_close($link);
}
function get_all_posts()
{
$link = open_database_connection();
$result = mysql_query('SELECT id, title FROM post', $link);
$posts = array();
while ($row = mysql_fetch_assoc($result)) {
$posts[] = $row;
}
close_database_connection($link);
return $posts;
}
これに(スペイン語は無視してください):
<?php
/**
* @author Me
*
*/
/**
* post.php: clase post, elemento de texto básico del blog
*/
class Post
{
/**
* titulo del post
* @var string
*/
private $title;
/**
* Constructor de la clase Post
* @param string $title
*/
function __construct($title)
{
$this->title = $title;
}
/**
* Get para titulo del post.
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set para titulo del post.
* @param string $title
* @return self
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
public function getAllPosts()
{
//Ummm what?
}
}
私の問題は、このgetAllPosts()
メソッドが私のモデル post.php のどこに収まるかということです。何が間違っているのでしょうか? 頭に浮かんだ唯一のことは、メソッドを静的として作成することでしたが、それは意味がなく、そのようにすべきではないことを私は知っています...
事前に感謝します。この MVC 全体を理解しているようです。Web 開発における MVC のような構造は、私にかなりの問題を引き起こしています...
注: これは Symfony とはまったく関係ありません。単純な MVC のような実装 (ビューの作成方法を含む) に従おうとしているだけです (これは明らかに MVC を実装する「純粋な」方法ではありません)。