オブジェクト指向について
連続質問で誠に恐縮ですが投稿させて頂きました。
もしTo_aru_User様が拝見したらご協力いただければと思います。
以前の質問でオブジェクト指向で件数の表示とページングの質問をさせて頂きました。
public function getComments($page) {
// 必ず1以上の整数になるようにする
$page = max(1, (int)$page);
// 開始オフセット
$offset = COMMENTS_PER_PAGE * ($page - 1);
// SQL実行
$stmt = $this->pdo->query(sprintf(
implode(' ', array(
'SELECT CALC_FOUND_ROWS *',
'FROM `comments`',
'LIMIT %d, %d',
)),
$offset,
COMMENTS_PER_PAGE
));
// コメントを取得
$comments = $stmt->fetchAll();
// 現在件数を取得
// (PDOのコンストラクタでMYSQL_ATTR_USE_BUFFERED_QUERYを
// 有効化しているときだけSELECTに対してrowCountメソッドが使える)
$current_count = $stmt->rowCount();
// 総件数を取得
$whole_count = (int)$this->pdo->query('SELECT FOUND_ROWS()')->fetchColumn();
// メッセージ作成
$message = sprintf('全%d件中、%d件から%d件まで表示しています',
$whole_count,
$offset + 1,
$offset + $current_count
);
// 情報を連想配列で返す
return array(
'comments' => $comments,
'message' => $message,
);
}
この記述はデータベース接続関連のクラスの中(DB.php)に記述したのですが正解でしょうか?
またそれをindex.phpで呼び出そうとしてもうまくいきません。
申し訳ないのですがオブジェクト指向の呼び出しかたを指導していただけませんでしょうか?
オブジェクト指向をこのご質問と合わせて勉強しようと思ったのですがPHPも覚えたてでアタフタ状態なので、今回の件をとりあえずちゃんと解決してから基礎からしっかり固めようとおもいます。
大変申し訳ございませんが、お力をお貸しいただけませんでしょうか。
よろしくお願いいたします。
お礼
ご回答ありがとうございます。 現場の状況をを垣間見ることができました。 > あと個人的には、『Web系は簡単』というイメージを持たれていそうな気もします。 そうですね。僕もPHPを勉強しているといったら、Webアプリって簡単に作れそうだねという 答えが返ってきます。僕も僕で、「うん、そんなに難しくはないよ」と答えてしまいますが・・・。 > 欲を言い出したら止まらなくて、でも今更そうする事もままならず、壮大なお話になって終わります(笑) 話だけでも出来る仲間がいるだけでも幸せだと思いますよ。 > 極論を言ってしまえば、必要ありません。 率直な意見ありがとうございます。 私も、人に「必要か?」と聞かれれば、絶対に必要だ!とは答えてません。 私は、趣味の延長で勉強し始めて、正しい理解がないため、一種の乱用になりそうです。 例えば、PDOとSmartyのインスタンスをプロパティとして格納するMyClassを作って、 $obj->method()->method() みたいに呼び出すとか・・・。 でも、正しい使い方ではないんだろうなと薄々感じてたり・・・。 また、Singleton とかわざわざ作らなくても、「これインスタンス1つだけね!」って コメントに書くだけとか・・・。 ともかく、貴重な意見、ありがとうございました。 精進いたします!