したがって、私はこのクラスを自分のアプリ全体で何度も繰り返し使用しています。これは一例であり、ではない実際に行われるように必要なもの:多くのオーバーヘッドパフォーマンスに影響を与えずにアプリケーション全体でPHPクラスを使用する方法
ファイルA:
class Names {
public function first() {
echo 'Bob';
}
}
そのファイルがspl_autoload_register
を使用して、私のアプリに自動的にロードされ、他のページ/クラスで全体のすべての使用:
ファイルB:
class LastNames {
public function __construct() {
$this->first = new Names();
}
public function last() {
echo $this->first->first().' Smith';
}
}
$names = new LastNames();
echo $names->last(); // Bob Smith
私は、コンストラクタ内のクラスをインスタンス化Names
多くのファイルを持っています。
- これは、パフォーマンスに大きな打撃を与えますか?
public function
の代わりにstatic function
を使用する必要がありますか?Names
内の関数を別のクラスの中で何度も何度も再利用する方がいいですか?
は「多くの」再パフォーマンスを定義します。あなたは、各クラスオブジェクトに固有のクラスメソッド(関数)のモジュラインスタンスではなく、単一のインスタンスが必要な場合にのみ静的(私が知っている限り)する必要があります。私はこれが典型的に抄録として参照されていると思う。 – Martin
'コンストラクタの内側 'に移動し、関数内にインスタンスを作成するのではなくインスタンスを挿入します。 '__construct(Names $ names)'トピック:依存性注入 – JustOnUnderMillions
オブジェクトをインスタンス化するのはコースのためです。オブジェクトがビジネスロジックに必要なものであれば、インスタンス化を避けることはできません。 「多くの」小さなオブジェクトをインスタンス化することは、通常は問題ではありません。問題は:**それはあなたのために問題ですか?**あなたはそれを試しましたか?あなたは問題を見つけましたか?現実の世界で実際に対処する必要がある問題です。それ以外の場合、コードは実行不可能でしょうか?実際にパフォーマンスの問題が発生するまで、心配する必要はありません。あなたのオブジェクトをインスタンス化する。 – deceze