2

私もOOPとPHPにはかなり慣れていないので、チュートリアルや本を読んでコツをつかんでいます。現在、私は個人的なプロジェクトに取り組んでおり (チュートリアルや本の演習はありません)、クラスとファイルを整理する方法について質問があります。

データベースとの接続を作成する database.php ファイルがあり、クラスの __construct 関数で次のように呼び出します。

<?php

include 'database.php';

class users {

// Database Connection
public function __construct() {
  $db = new database();
}

// the rest of my functions

?>

私が抱えている問題/質問は、私が行ったチュートリアルと演習では、クラスが 1 つしかなかったことです。現在、私のプロジェクトには 3 つのクラス (users、movies、watchlists) があり、それらにはすべて .php ファイル (users.php、movies.php、watchlists.php) があります。

私のプロジェクトの特定のページでは、3 つのクラスすべてのデータが必要なので、これらのページを次のように開始します。

<?php
session_start();

include 'include/users.php';
include 'include/movies.php';
include 'include/watchlists.php';
$user = new users();
$movie = new movies();
$watchlist = new watchlists();

// the rest of the file

データベース接続を 3 回続けて作成しているため、複数のクラスがある場合、これが正しい方法ではないことは明らかです。

では、私のようなプロジェクトに取り組んでいるときに、クラス、データベース接続、および .php ファイルを正しく管理するにはどうすればよいでしょうか?

すべてを説明する必要はありません。これに関するすばらしい記事やチュートリアルをリンクしていただければ幸いです。(はい、グーグルで検索しましたが、役立つものが見つかりませんでした)。

ありがとう

4

3 に答える 3

2

これらの簡単な手順に従うだけで、データベースに 3 回連続で接続することはありません。

交換

include 'database.php'

include_once 'database.php'

接続コードを次のように記述します

if(!$con) {
    $con = mysqli_connect(HOST, USER, PASS);
}
于 2013-05-20T15:06:55.150 に答える
1

調べたいのは PSR-0 Standard https://gist.github.com/Thinkscape/1234504です

ほとんどの市販のオートローダーは、この標準で最も簡単に機能します。

于 2013-05-20T15:10:19.887 に答える
1

ほとんどの PHP コーディング標準では、「クラス ファイル」に含める必要があるのはクラス定義のみであると述べています。つまり、includes もrequires もありません。では、あるクラスが別のクラスにアクセスできるようにするにはどうすればよいでしょうか?

オートローディング!オートローディングについて読んでください。簡単な説明は、別のファイル (実際にクラスを使用するのと同じファイル) でオートローダーを定義し、呼び出すすべてのクラス、およびそれらのクラスに必要なすべてのクラスです。 PHP は自動的に行って取得します。ステートメントを入力する手間がかからないだけでなくinclude、実際に使用するクラスのみがフェッチされるため、自動ロードは優れているため、より効率的です。

もう 1 つのポイントとして、通常は、すべてのクラスを独自のフォルダーに保管し、そのフォルダーのからそれらのクラスを実際に使用することをお勧めします。繰り返しますが、これは単なる慣例ですが、オートロードの実装も少し簡単になります。

于 2013-05-20T15:09:41.307 に答える