7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【サルが書く】cakephpのClassRegistry::initってなんだ

Posted at

コンポーネントやヘルパーからモデルを呼びたい時はClassRegistry::initじゃないとモデルを呼べない。
App:usesとApp::importはコンポーネントやヘルパーでは使えないらしい。
またユニットテストを行いたいときにはClassRegistry::initを使うと、本番DBに繋がずにテストを行いことができるらしい。

ClassRegistryはインスタンスが生成済みであれば、生成済みのインスタンスを返す。シングルトン形式でインスタンスを生成している。なので違う性質のインスタンスをいくつか作る場合は適していないらしい。

  • シングルトンとは生成するインスタンスを一つに制限するデザインパターンらしい。
  • シングルトンだと指定したクラスのインスタンスが一つだと保証する。
  • インスタンスが一つだと表現したい
  • このような場合にSingletonパターンを用いてインスタンスを生成します。

インスタンスの状態を保持したかったり、クラス間で共通のメソッド・プロパティにアクセスしたい場合に使われることが多いですね。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?