開発作業において、PHP言語の「やり方」をマスターすると、使いやすくなり、開発効率が大幅に向上します。したがって、この記事では、PHP 開発スキルのトップ 10 を紹介します。お役に立てれば幸いです。
1. Web サイトのインデックス ページを正しく作成する方法
Web サイトを作成するとき、最初に行うことの 1 つは、Web サイトのインデックス ページを作成することです。 PHP を初めて使用する場合、インデックス ページを作成するときの一般的なアプローチは、インデックス ページに必要なコンテンツのみをプログラムし、他のリンク用に別のページを作成することです。ただし、PHP プログラミングを実装するより効率的な方法を学びたい場合は、多くの Web サイトで使用されている「index.php?page=home」モードを使用できます。
2. Request Global Array を使用してデータをキャプチャします
実際、値をキャプチャするために $_GET 配列と $_POST 配列を使用する理由はありません。グローバル配列 $_REQUEST を使用すると、get または form リクエストを取得できます。したがって、ほとんどの場合、データを解析するためのより効率的なコードは次のようになります。 '
] : 0;3. PHP コードのデバッグには var_dump を使用します PHP デバッグ テクノロジを探している場合は、var_dump が目的であると言わざるを得ません。このコマンドは、php 情報の表示に関するすべてのニーズを満たすことができます。コードのデバッグのほとんどのケースは、PHP での値の取得に関連しています。 4. PHP はコードロジックを処理し、Smarty はプレゼンテーション層を処理します
Smarty は、PHP で書かれたテンプレート PHP テンプレート エンジンであり、現在業界で最も有名な PHP テンプレート エンジンの 1 つです。論理コードと外部コンテンツを分離し、元々 HTML コードと混在していた PHP コード ロジックを分離する、管理と使用が簡単な方法を提供します。簡単に言うと、その目的は、PHP プログラマーをフロントエンド担当者から分離し、プログラマーがフロントエンド担当者のページ設計に影響を与えることなくプログラムの論理コンテンツを変更し、フロントエンド担当者が影響を与えずにページを再変更できるようにすることです。プログラムのプログラム ロジック これは、複数人の共同作業を伴うプロジェクトでは特に重要です。5. 本当にグローバル値を使用する必要がある場合は、構成ファイルを作成します
グローバル値を頻繁に作成するのは悪い習慣ですが、実際の状況ではこれが必要になる場合があります。データベース テーブルまたはデータベース接続情報にはグローバル値を使用することをお勧めしますが、PHP コードではグローバル値を頻繁に使用しないでください。あるいは、グローバル変数を config.php ファイルに保存する方が良い方法です。6. 定義されていない場合はアクセス禁止です!
ページを正しく作成した場合、index.php または home.php 以外の人物がindex.php ページにアクセスする理由はありません。 Index.phpにアクセスしたら、変数を取得することで必要なページを開くことができます。インデックス ページには次のようなコードが含まれている必要があります:define('yourPage'
,1);次に、他のページには次のコードが含まれている必要があります:
)) die(
'アクセスが拒否されました' 7. データベース クラスを作成する データベース プログラミング (PHP では非常に一般的なタスク) を行っている場合は、データベース管理機能を処理するデータベース クラスを作成することをお勧めします。サンプルコードは以下の通りです。 public function dbExec($query)
{
$result = $this->db->exec($query);
if (PEAR::isError($result))
errorRedirect($result->getMessage(), true);
else
return $result;
}
この関数はクエリ文を受け取って実行するだけです。発生する可能性のあるエラーも処理します。ここに監査コードを含めることもできますが、私は同様の監査関数を使用することを好みます: // checks if arguments given are integer values not less than 0 - has multiple arguments
function sanitizeInput()
{
$numargs = func_num_args();
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
if (!is_numeric($arg_list[$i]) || $arg_list[$i] < 0)
errorRedirect("Unexpected variable value", true);
}
}
コードが乱雑になっている 重要な方法は、ユーザー入力を取得した後、それを他の関数にリダイレクトして処理することです。原理は非常に単純で、php ファイルは必要な入力をすべて受け取り、その実行をクラス ファイル内の関数にリダイレクトします。たとえば、「index.php?page=profile&action=display」のような URL があるとします。 URL は profile.php によって取得され、アクションは「表示」です。次に、単純なスイッチ関数を使用して、実際の表示関数を実行します。
require_once PROJECTROOT.'libs/messages.class.php'; $message = new Message(); switch ($action) { case 'display': $message->display(); break; ...
上に示したように、メッセージ クラスを使用して、スイッチ チェックを開始します。 $message は、クラス内の関数を呼び出すことによって使用される単なるオブジェクトです。
9. SQL ステートメントを理解し、常にサニタイズしてください正如我以前所提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql。学会关联表和更多高级技术。下面我将展示一个使用MySQL的函数示例,并使用本文第7条函数进行审查。
private function getSentMessages($id) { $this->util->sanitizeInput($id); $pm_table = $GLOBALS['config']['privateMsg']; $users = $GLOBALS['config']['users']; $sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR WHERE id_sender = '$id' AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE ORDER BY date_sent DESC"; $result = $this->dbQueryAll($sql); return $result; }
首先,我们对用户输入进行检查(通过一个GET变量传递消息id),然后我们执行我们的SQL命令。注意这儿SQL的用法。你需要了解如何使用别名和关联表。
10、当你只需要一个对象时,使用单例模式
在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它。一个很好的例子就是smarty变量,一旦被初始化后就可以在任何地方使用。这种情形的一个很好实现方案就是单例模式。示例代码如下:
function smartyObject() { if ($GLOBALS['config']['SmartyObj'] == 0) { $smarty = new SmartyGame(); $GLOBALS['config']['SmartyObj'] = $smarty; } else $smarty = $GLOBALS['config']['SmartyObj']; return $smarty; }
注意,我们拥有一个全局smarty变量(该示例中它在config.php中被初始化),如果它的值为0,我们将创建一个新smarty对象。否则,它意味着该对象已经被创建,我们只需要返回它。
以上がPHP 開発者の生産性を向上させる 10 の方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。