1

Perl、Python、Javascript でのプログラミング経験がありますが、最近、スパゲッティ コードのように見える PHP プロジェクトを継承しました。

単体テストで適切に取得するために、プロジェクトをリファクタリングしようとしています。私にとってこれは、ソース コードを調べて、グローバル変数を使用せず、それぞれが 1 つの特定のタスクを実行する小さな関数にすべてを分割することを意味します。

PHP のモジュール システムが Javascript のように機能することは理解しています。つまり、すべてのソース ファイルが 1 つに連結されますinclude

これは、ファイルの 1 つが他のファイルを使用すると仮定すると、2 つの別個のファイル内の関数が同じ名前を持つことはできないことを意味します。

私の質問は、PHP でこのグローバル スコープの問題に対処するために関数をどのように定義すればよいですか?

Javascript では、次のようにモジュール パターンを使用します。

var MyModule = (function () {
                  return {
                      'func1': function () {},
                      'func2': function () {}
                  };
                }());

またはそのバリエーション。PHPでこれを行う方法はありますか?また、これに対する適切な規則は何ですか?

4

3 に答える 3

3

次の 3 つのオプションがあると思います。

  • クラスを使用して関数をバンドルする
  • 名前空間を使用する
  • 両方を使う

関数だけに固執したい場合 (書き換えが簡単)、名前空間を使用するだけで問題ありません。

于 2013-07-29T09:36:56.553 に答える