質問: classファイルの取り扱い方 クラスファイルをnewをしてから関数を呼び出す場合と クラス名::関数名で呼び出す場合だとパフォーマンスやメモリの負担などの違いは在りますでしょうか? また、独自のpublic function関数のみのファイル(lib.php)をclassで囲ってあるのですが、 実際はincludeして扱うので、classで囲わなくても問題はないと思うのですが、どこのクラスにあるのかという目安として囲っています。 上記のファイル関数を呼び出す場合に 1.newをしてから$クラス変数->関数名(); 2.それともクラス名::関数名(); 3.そもそもclassで囲わないで、関数名();のみ コーディングルールがないのでどれが一般的なのかが分かりません。 教えて下さい。
回答: >独自のpublic function関数のみのファイル(lib.php)をclassで囲ってあるのですが、 これに関しては、一般的であるかという点からみると、少数派に属すると思います。 ですが、特殊な使い方であるとも、誤った使い方であるとも思いません。 >どこのクラスにあるのかという目安として囲っています。 漠然と、「特に意味もなくclassにしてみました」というわけではなく、目的がはっきりしているので良いと思います。 仮に他の人からその設計思想を聞かれた場合、デバッグ作業の効率化という方が聞こえがいいかも知れません。 関数を呼び出す場合は(2)の、『クラス名::関数名();』の形式が一般的と言えますね。 わざわざインスタンスを作成する必要はないクラスなのでって理由です。 ま、(1)のようにインスタンスを作成するのが間違いとまでは言いませんけど、必要ない事をわざわざしているなと感じます。 個人的には、phpプログラムを作成する場合 ・メモリ負担はあまり気にしません、常駐するわけではないためすぐに解放されますから ・パフォーマンスはあまり気にしません、サーバー性能にもよるでしょうがphpの動作は速いですし、どっちみちネットワークは遅いです。 phpコードを改良して実行時間を0.1秒減らすよりも、ajax的な動作で画面遷移を極力減らすなど、体感的にストレスをなくす方を選択します。 ま、メモリ負担もパフォーマンスも程度問題ですけどね。 むちゃくちゃメモリを使う場合、むちゃくちゃ遅い場合等、そんな場合は当然気にします。 それよりも気にするのは開発効率、デバッグ効率ですね。 もうひとつ気にするのは、htmlデザインやページ構成、ユーザビリティ、アクセシビリティ、そしてseo的なもの。 phpでただシステムを作る、ツールを作る、機能を作るのではなく、サイトを構築する、サイトの一部を作るという事を重要視します。