2011-01-19 17 views
1

PHPの全体を少し新しくしました。PHPコーディングスタイル関数と渡す変数

パフォーマンスとセキュリティの点で優れているのは尋ねたいことです。両方とも長所と短所を持っていることは分かっていますが、全体的なパフォーマンスとセキュリティにとってより良い結果が得られるとの結論に達しているようです。

  1. 多くの機能を備えたPHPファイルを使用します。だから、私が持っているすべてのページは関数phpファイルを "インクルード"するので、関数は任意のページで呼び出すことができます。

OR

  1. パラメータ入力(それはあなたがそれを呼んでいますかどうかわからない)を受け入れるPHPファイルを持っています。たとえば、function.PHP?id = 100

すべてのコメントは?

みんなありがとう:)

+0

ヘルパー機能を整理する最良の方法はどれですか? 2番目の方法はHTTPリクエストを作成したいと思っているように見えるので、動作するとは思われません。 –

+1

特に、function.php?id = 100とは何かを意味し、それがファイルのインクルードにどのように関係しているのかについて、言い換えて、またはコードを表示してください。 – rik

+0

整理、演奏...特に何もありません。私が2番目のメソッドを使用した理由は、この2番目のメソッドがVBやJava(主に関数やクラスに基づいています)などの他の言語には存在しない単純なものだったからです。第二の方法が第一の方法よりも大きな利点を持っているかどうかは不思議でした。私が2番目のメソッドで前に行ったことは、ページに値を渡した後、ページは値を処理し、その結果をセッション変数/クッキーに保存したり、表示のために新しいページに戻したりします。機能のように機能しましたが、機能のようにフレキシブルではありませんでした。 – Tak4ever

答えて

0

ようこそTak4evr

は、私は、このメソッドを介してオブジェクト指向の設計手法を使用します。手続き型コードは、多くの機能に基づいており、従うのが難しく、保守にコストがかかります。

しかし、私はあなたの最初の選択肢となるだろう選択肢が与えられた:

機能の負荷でPHPファイルを使用してください。だから、私が持っているすべてのページは関数phpファイルを "インクルード"するので、関数は任意のページで呼び出すことができます。

function.php?id=100を使用するのではなく、わかりやすいものを使用して機能を使用することをお勧めします。

たとえば、clients.php?id=100を使用してclients.phpを使用してidを取得し、そのうちの1つにidを渡します。

希望に役立ちます。

+0

私はその提案に、システム内で実行されているオブジェクトとエンティティに基づいて、いくつかの機能ファイル(ヘルパー)を持つことを推奨します。 –

+0

良いポイントYishai –

1

第2の方法が好ましい:アプリケーション/ウェブサイト全体を駆動する1つのファイルindex.php。パラメータを受け取り、自分の仕事を行う機能をどう処理するかを決定するために、URLにパラメータ、およびヘルパー:あなたは両方を使用します 、アプリケーションを破壊については

小さく、再利用可能な「サブ問題」で「大きな問題」を分解し、それぞれの再利用可能な関数でラップしてください。

その後、「大きな問題」を解決することは、パズルゲームのように関数呼び出しを張り合わせることです。

は今、それはあなたが(詳細については、そこに私の応答を読んで)autoloadingを活用するために、OOP mannerにそれを打破するだろう、より高度なレベルでは、あなたの初心者レベルでを移動するための方法でした。

2つのレベルの経験の間で、http://www.limonade-php.net/のような手続き型のPHPフレームワークを最初に試してみてください。次に、そのコードを理解して学ぶことができます。これにより、PHPの高度な使い方を正しく理解することができます。

あなたの提示されたオプションのは、セキュリティまたはパフォーマンスに関して特に重要な点がありますが、どちらも同じです。機能を破ることは、コードの再利用maintainabilityの問題です。つまり、OOPはどんな点でもまだまだ優れています(もう一度、私の他の答えを指摘する必要があります)。 (つまり、$_REQUEST$_GET$_POST$_FILE$_COOKIE$_SESSION、(からいくつかの要素)$_SERVER)私が言ったように

は、あなたは両方を使用します、そして、あなたは入力を検証する必要があります。 XSSに注意してください(基本的には、strip_tags()またはhtmlentities()またはその2つの組み合わせを使用します)。それはセキュリティの側面です。

0

この質問であなたが意味することができることを試してみるのはしばらく時間がかかりました。

パラメータ入力を受け入れるPHPファイルを用意してください(それがあなたの名前であるかどうかはわかりません)。例えば、function.PHP?id = 100

私はあなた自身のユーザ定義関数を使ってPHPコードの関連部分だけを含めることができると思っています。

非常にプログラミングされていない限り、VERYがこの問題を解決するには間違った方法です。トピックに関するいくつかの議論のための自己修正コードのためのGoogleを持ってください。これは巨大なコードインジェクション脆弱性を引き起こし、コードのデバッグを非常に困難にします。

セキュリティ上の問題がなく、メンテナンス上の問題がなくても、あなたがプログラマである場合でも、PHPスクリプトにパラメータを渡す唯一の方法は、HTTPリクエストまたはプログラムの実行によるものですローカルのファイルシステムからコードを直接読み込むのに比べて、このアプローチはパフォーマンスの観点からは間違っています。

PHPは、あなたが提案しているもの(オートローダー)と非常によく似た機能を持っています。しかし、いくつかの非常に重要な違いがあります。

PHP内で制御できるperfromance関連のもの(つまり、HTTPのものではなく、DBのもの)は、インタープリタが解析するコードの量です。だから、あなたの最初のアプローチは、パフォーマンスの観点から見て間違っています。

問題を解決する正しい方法は、機能を関連するチャンクに分解し、これらを別々のファイルに保存し、特定のタスクに必要なものだけを含めることです。

関連する問題