2012-01-12 7 views
1

私は約8年間手続き型PHPをプログラミングしていて、ついにOOPHPを学び始めました。私は多くのチュートリアルを進めてきました。構文を理解し、それを使用するのがとても快適です。しかし、私が見つけられなかったのは、クラスファイル構造を設定する方法と、クラス内からクエリを実行するためにクラス内のデータベースにアクセスする方法の実例です。PHPでクラスを整理し、クラス内からデータベースにアクセスする方法

私の最初の考えは、/ classという別のフォルダを作成して、すべてのクラスに対してファイルを作成することでした。クラスが別のクラスを拡張した場合、子ファイルの親ファイルinclude()が返されます。私の主なスクリプトでは、私はそれらを必要とするクラスを呼び出すだろう。例えば、include(/class/member.php)私はそれらにメンバークラスが必要でした。

また、私はmysqliを拡張するデータベースクラスを書いています(私はあなたの多くが私がPDOを使うことを示唆していることを知っていますが、あなたに何か理由があるとすれば、これまでMySQLを使用していません)。本当に私を投げ捨てたのは、クラスでデータベース接続を開く方法でした。例えば、私の考えはメンバークラスにあり、member_idを渡して、クラスのすべてのプロパティをメンバーのものに設定するクエリを実行します。当初、私はメインスクリプトにデータベースクラスを組み込み、そのインスタンスを作成してから、メンバクラス内でグローバルとしてハンドルを宣言しました(私はグローバルが悪い方法を読んできました。これを行うためのより良い方法は何ですか?

ありがとうございました!

答えて

5

まず、それぞれのクラスのために別々のファイルで適切なトラックにアクセスしてください。これは現時点ではかなり標準的な練習とみなされています。私はclass autoloadingspl_autoload_registerを調べます。私は非常にオートローダの最初のことを設定することをお勧めします。あなたがクラスファイルを含める前に無数の数字interface_existsclass_existsが本当にやりたいとは思わないときは、私を信頼してください。

第2に、データベースの呼び出しについてです。 I answered a similar question hereしかし、基本的な要点は、単一のデータベースインスタンスを作成し、それをデータベースアクセスを必要とするクラスに注入することです。限りまでmysqli、それはあなたがそれを使用して好きなものです。あなたが古い、廃止されたmysql_*を使用していないことは素晴らしいことです。

5

私の意見では、OOPを学ぶ最も良い方法は、OOPに続く既存のコードベースを見ることです。私は、Zend Framework API Docsをチェックすることをお勧めします。あなたに有望に見える場合は、frameworkをダウンロードして練習を開始してください。

Zend Frameworkのクールなことは、トップダウンのMVCやスタンドアロンのライブラリとして使用でき、PHPコミュニティで頻繁に使用されていることです。

に集中するいくつかのものは:

  • クラスのオートローディングクラス名は、それぞれのディレクトリ構造体とクラスは抽象クラス
  • インタフェース
  • を延長しているどのよう
  • を並べる方法
  • 関連する問題