0

私はすでに Yii フレームワークを勉強しています。マニュアルに従って、「protected/componets」フォルダーの下に独自のクラス「Util」を配置しました。オブジェクトを取得するには、モデル ファイルで「new Util()」を使用する必要があります。同じことを行う別の方法はありますか? 毎回新しくする必要がないように、「getComponent()」として記述されたメソッドのように。手伝ってくれてありがとう。

4

1 に答える 1

0

プロジェクトUtilでいつでもクラスのインスタンスを 1 つだけ使用できるようにする必要がある場合は、Singleton プログラミング パターンの適切な使用例を説明しています。PHP で使用するには、次のようにします。

<?php
class Util {
  private var $instance = false;
  private function __construct() {
    echo "No one can call 'new' but me!";
  }

  static function getInstance() {
    if ($this->instance == false) {
      // Create the first and only instance of this class
      $this->instance = new Util();
    }
    return $this->instance;
  }

  public function foo($bar) {
    echo "Hello $bar!";
  }
}
?>

それがクラス定義です。使用するに$util = Util::getInstance();は、Util クラスのインスタンスを 1 つ取得するだけです。次に、次のようなものが$util->foo('World');うまく機能します。

于 2012-09-14T03:28:51.097 に答える