0

PHPコードをどのように管理しますか?1つのphpファイル内で機能するのか、それとも「生のコード」のより大きなブロックを含めるのが好きですか?

編集:実際、名前空間とクラスを使用せず、関数とインクルードのみを使用しているため、私のコードはかなり厄介です。クラスを調べてみます^^。

4

8 に答える 8

4

必要に応じて使用してください。処理を行う大きなコードのチャンクには include を使用し、「ユーティリティ」関数には functions を使用します。関数内にインクルードを使用することもあります...それは、コードがどれだけきれいかによって異なります。

インクルードが多いということは、PHP モジュールからの fopen() が増えることを意味し、スクリプト全体の実行が遅くなる可能性があると考えてください。

于 2008-12-19T20:29:11.340 に答える
3

phpクラスを使用している場合、これはそれ自体を整理します。そうでない場合は、学ぶ必要があることを除いて、受け入れ可能な答えを出すのは本当に難しいです。私が見たすべてのphpコードは、クラスなしでいずれかの方法で実行されると、すぐに乱雑になるようです。

于 2008-12-19T20:21:47.843 に答える
3

OOPが進むべき道であることに同意します。コードの大きな固体ブロックは、メンテナンスにとって悪夢です。間違いなく行く方法ではありません。コードを、相互に作用し、単独で簡単に保守できる小さなブロックに分割する必要があります。

于 2008-12-19T20:27:38.800 に答える
1

PHPでプログラミングしていたときは、一般的なユーティリティ関数を共通ファイルにグループ化してほとんどのページに含め、クラスを専用ファイルにグループ化して、必要な場合にのみロードするのが好きでした。

于 2008-12-19T20:20:54.833 に答える
0

PHP には、クラス呼び出しをインターセプトするために使用できる __autoLoad () マジック関数があります。クラスがまだ存在しない場合は、いくつかの簡単なコードをセットアップして、含める適切なクラス コードを探すことができます。その後、通常どおり実行されます。

于 2009-06-05T01:01:00.720 に答える
0

私が取り組んでいることは、すべてのグローバル関数とデータベースのセットアップを含むすべてのページの上部に 1 つのインクルード ファイルがあります。そのまま動作しますが、関数を個別のファイルに移動しています。すべてが大きな塊になっているため、テストを行うのは完全に非現実的です。

于 2008-12-20T00:20:43.400 に答える
0

通常、ロジックには関数/クラスを使用し、表示にはインクルードを使用します。私はコントローラーでこのようなものになってしまいます...

case 'widgetlist':
  $widgets = $DAO->getWidgets();   //get some query
  include('view/showWidgets.php'); //assume a global $widgets variable
  break;

HTML/CSS デザイナーに、表示する関数呼び出しよりもインクルードを与える方が簡単であることがわかりました。欠点は、はるかに安全な引数ではなく、変数をインクルードに渡すためにグローバルに依存していることです。

于 2008-12-19T20:32:12.097 に答える
0

名前空間として正しいプレフィックスを使用して、クラスを個別のファイルに作成します(少なくともそれらが含まれるまで)。また、名前空間効果のために、関数を「静的クラス」に静的メソッドとして配置しました。

ファイルをインクルードするために autoload を使用するので、何百ものインクルードを作成する必要はありません。My_Example_Class を {lib}/My/Example/Class.php として保存します

于 2008-12-20T00:07:42.677 に答える