PHP と MySQL で書かれた PBBG (ゲーム) を 7 か月間開発してきました。プロジェクトはほぼ完了し、まもなくリリースされる可能性がありますが、いくつかの問題が心配です。
実際のプロジェクトをプログラミングするのはこれが初めてであり、OOP を使用するのも初めてでした。私のコードは現在約 25,000 行あります。これが私の質問です。
OOP を正しく使用していますか? クラスの構成要素を過度に呼び出していると思います。私は約 20 の異なるクラスを持っていますが、お互いが必要な場合もあります。OOP の使用方法のサンプル コードを次に示します。
class A {
public $b;
public $c;
public function __construct(){
$b = new B();
$c = new C();
}
public function sampleA(){
//some stuff that depends $c->sampleC
}
}
class B {
public $c;
public function __construct(){
$c = new C();
}
public function sampleB($id){
return $this->c->sampleC($id);
}
}
class C {
public function sampleC(){
}
}
次に、次を使用します。
$a = new A();
$b = new B();
$c = new C();
$whatIWant = $a->sampleA($b->sampleB($c->sampleC()));
私はただできましたが
$a = new A();
$whatIWant = $a->sampleA($a->b->sampleB($a->c->sampleC()));
この単純な例では、これは必要ないように見えますが、スクリプトで 200 を超えるさまざまなコンストラクター呼び出しを行っているため、サーバーの速度が低下し、過負荷になると思います。
おそらく私の例はあまり明確ではなかったので、xdebug プロファイラーの結果を印刷しました。
私が必要とするのはシングルトンですか?このような単純な例をシングルトンで使用してみましたが、同じ結果が得られました (クラスごとに複数の構成体)。
これらのクラスを拡張して、親のコンストラクターを使用する必要があるのでしょうか? しかし、20 の異なるクラスが独立していたり依存していたりすると、どのようにそれが可能になるのでしょうか?
あるいは、私はそれを正しい方法で使用しているのかもしれません (私はそうは思いません)。