6

Webから作成またはコピーする関数がたくさんあります。

スクリプトに含めるだけのファイルにそれらを保存する必要があるのか​​、それとも各関数を静的メソッドとしてクラスに保存する必要があるのでしょうか。

例えば。getCurrentFolder()関数とisFilePhp()関数があります。

それらをそのままファイルに保存するか、クラスにそれぞれ保存する必要があります。

Folder :: getCurrent()File :: isPhp();

ごきげんよう?

私はこれがちょっと「あなたが望むように」質問であることを知っています、しかしそれはいくつかのアドバイス/ベストプラクティスで素晴らしいでしょう

ありがとう。

4

1 に答える 1

3

そうです、これは非常に主観的な問題ですが、おそらく2つのオプションを組み合わせて使用​​ します。

__call()(および/または__callStatic()PHP 5.3+ を使用している場合は)マジック メソッドを持つクラス (ヘルパーなど) があり、定義されていない [静的] メソッドが呼び出されると、それぞれのヘルパー ファイルが読み込まれ、ヘルパー関数が実行されます。 . ただし、ファイルを含めるとパフォーマンスが低下することに注意してください。ただし、ファイル編成に関して得られるメリットは、わずかなパフォーマンスの影響をはるかに上回ると思います。

簡単な例:

class helper {
    function __callStatic($m, $args) {
        if (is_file('./helpers/' . $m . '.php')) {
            include_once('./helpers/' . $m . '.php');
            return call_user_func_array($m, $args);
        }
    }
}

helper::isFilePhp(/*...*/); // ./helpers/isFilePhp.php
helper::getCurrentFolder(/*...*/); // ./helpers/getCurrentFolder.php

__call[Static]()各クラスにマジック メソッドを追加し、ヘルパー ファイル/関数のフォルダー/ファイル構造にいくつかのロジックを実装することで、このスニペットをさらに最適化し、いくつかのタイプのヘルパー (フォルダー、ファイル) などを使用することもできます。

于 2010-04-27T00:26:17.250 に答える