• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:classファイルの取り扱い方)

classファイルの取り扱い方

このQ&Aのポイント
  • クラスファイルの取り扱い方について詳しく解説します。
  • クラスファイルをnewをしてから関数を呼び出す場合と、クラス名::関数名で呼び出す場合のパフォーマンスやメモリの負担の違いについて教えてください。
  • また、独自のpublic function関数のみのファイル(lib.php)をclassで囲ってある理由や、クラスで囲わずに関数を呼び出す方法についても説明してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

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

その他の回答 (2)

noname#243182
noname#243182
回答No.3

メモリの割り当てについては、ご自身にて確認する方法が用意されています。呼び出し方法に応じてどの程度の変化があるかを検証し、その結果を指針とされてはいかがでしょうか。 http://www.php.net/manual/ja/function.memory-get-usage.php http://www.php.net/manual/ja/function.memory-get-peak-usage.php コーディング規約については、著名なライブラリやフレームワークで定められているものに倣うのがよいと思います。 PHP5からはクラスのオートローディングという仕組みが追加されています。十分に意味のあるクラス設計をしてファイルを上手に分割すれば、メモリにやさしい呼び出しが出来るかもしれませんね。 http://php.net/manual/ja/language.oop5.autoload.php

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

... コーディングルール、パフォーマンス以前に、用途に応じてでしょ ... ...。 パッケージ化する必要があるなら、クラス スタティックに呼び出す必要があるなら、スタティック関数、変数。 インラインで十分ならインライン関数。 ファイルサイズが大きい、あるいは分担作業する場合は、必要な箇所で include してもいい。 PEAR の Text_Highlighter なんかは、include が必要ないい例だと思います。 パフォーマンスが気になるなら、インラインでべた書き。 というより、ほとんどの場合インライン関数で十分です。 http://www.php.net/manual/ja/oop4.php を、と思ったけど、オブジェクト指向 をとりあえず調べてください。

関連するQ&A

専門家に質問してみよう