グローバル変数は、絶対に必要でない限り、一般的に悪い習慣と見なされているため、いくつかの機能を実現する別の方法を検討しています。
現在、PHP で CMS システムに取り組んでおり、他の開発者が CMS 用のモジュールを簡単に作成できるようにしたいと考えています。CMS クラスを次のように定義しました。
class CMS
{
public $version;
public $sitename;
public $siteurl;
public $tbl_prefix;
function __construct()
{
}
function RegisterModule()
{
}
}
ここで、 のインスタンスを生成CMS
し、開発者 (およびすべてのモジュールとコア ファイル) が変数を通じてアクセスできるようにします$_cms
。PHP ではオブジェクトに定数変数を使用できず、シングルトン パターンを使用するとインスタンス (つまりCMS::GetInstance()->RegisterModule()
) にアクセスするための扱いにくい構文が提供されるため、インスタンスを含むグローバル変数を定義せずに目的を達成する方法はありますCMS
か?
理想的には、次の構文のようなものを探しています。
_cms->RegisterModule();
または$_cms->RegisterModule();
、前者が優先されます。