大きな鏡をサーフボードとして使ったらどうなるでしょうか?より短い時間で波を征服できるかもしれませんが、これはサーフィンにとって正しい選択ではないことを心の底では確実に知っています。少し奇妙に聞こえるかもしれませんが、同じ原則が PHP プログラミングにも当てはまります。週末だけで PHP を学ぼうとする人たちの話をよく聞きますが、私の意見では、これはこのプログラミング言語を学ぶには非常に不十分な方法です。
PHP を学習するプロセスが他の言語と異なるのはなぜですか?
その性質上、PHP 言語で「物事を行う」方法をマスターすれば、より快適に使用できるようになるため、これらの方法を理解するために投資する価値はあります。 PHP では、単に自分のアイデアに従って問題を解決するのは、多くの場合、間違ったアプローチです。これはあなたが悪いプログラマーだからではなく、保守しやすい優れたコードを書きたい場合に使用しなければならない標準的なテクニックがいくつかあるからです。知っておくべきトップ 10 のヒントを見てみましょう。
1. Web サイトのインデックス ページを正しく作成する方法
Web サイトを作成するとき、最初に行うことの 1 つは、Web サイトのインデックス ページを作成することです。 PHP を初めて使用する場合、インデックス ページを作成するときの一般的なアプローチは、インデックス ページに必要なコンテンツのみをプログラムし、他のリンク用に別のページを作成することです。ただし、PHP プログラミングを実装するより効率的な方法を学びたい場合は、多くの Web サイトで使用されている「index.php?page=home」モードを使用できます。
2. Request Global Array を使用してデータを取得する
実際、値を取得するために $_GET 配列と $_POST 配列を使用する理由はありません。グローバル配列 $_REQUEST を使用すると、get または form リクエストを取得できます。したがって、ほとんどの場合、データを解析するためのより効率的なコードは次のようになります:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 0; var_dump を使用します。 PHP コードのデバッグ用
PHP デバッグ手法を探している場合、探しているターゲットは var_dump であると言わざるを得ません。このコマンドは、php 情報の表示に関するすべてのニーズを満たすことができます。コードのデバッグのほとんどのケースは、PHP での値の取得に関連しています。
4. PHP はコードロジックを処理し、Smarty はプレゼンテーション層を処理します。
Smarty は、現在業界で最も有名な PHP テンプレート エンジンの 1 つです。論理コードと外部コンテンツを分離し、元々 HTML コードと混在していた PHP コード ロジックを分離する、管理と使用が簡単な方法を提供します。簡単に言うと、その目的は、PHP プログラマーをフロントエンド担当者から分離し、プログラマーがフロントエンド担当者のページ設計に影響を与えることなくプログラムの論理コンテンツを変更し、フロントエンド担当者が影響を与えずにページを再変更できるようにすることです。プログラムのプログラム ロジック これは、複数人の共同作業を伴うプロジェクトでは特に重要です。
5. 本当にグローバル値を使用する必要がある場合は、構成ファイルを作成します
グローバル値を頻繁に作成するのは悪い習慣ですが、実際の状況ではこれが必要になる場合があります。データベース テーブルまたはデータベース接続情報にはグローバル値を使用することをお勧めしますが、PHP コードではグローバル値を頻繁に使用しないでください。あるいは、グローバル変数を config.php ファイルに保存する方が良い方法です。
6. 定義されていない場合はアクセス禁止です!
ページを正しく作成した場合、index.php または home.php の外にあるindex.php ページに他の人がアクセスする理由はありません。 Index.phpにアクセスしたら、変数を取得することで必要なページを開くことができます。インデックス ページには次のようなコードが含まれている必要があります: define('yourPage',1);
その後、他のページには次のコードが含まれている必要があります: if (!define('yourPage')) die('Access Denied');この目的は、他の PHP ページへの直接アクセスを防ぐことです。このようにして、index.php を経由せずに他の Web ページにアクセスしようとすると、「アクセスが拒否されました」というメッセージが表示されます。
7. データベース クラスを作成する
データベース プログラミング (PHP では非常に一般的なタスク) を行っている場合は、データベース管理機能を処理するデータベース クラスを作成することをお勧めします。サンプルコードは次のとおりです:
コードをコピーします
コードは次のとおりです: public function dbExec($query) {
$result = $this->db->exec($ query);
if (PEAR ::isError($result))
errorRedirect($result->getMessage(), true);
else
return $result;
この関数はクエリ ステートメントとそれを実行します。発生する可能性のあるエラーも処理します。ここに監査コードを含めることもできますが、私は同様の監査関数を使用することを好みます:
コードをコピーします
コードは次のとおりです:
// 指定された引数が 0 以上の整数値かどうかをチェックします - 複数の引数があります
function sanitizeInput()
{
$numargs = func_num_args();
$arg_list = func_get_args(); 0; $i < $numargs; $i++) {
if (!is_numeric($arg_list[$i]) || $arg_list[$i] < 0)
errorRedirect("予期しない変数値", true);
}
}
8. 1 つの php ファイルが入力を処理し、1 つの class.php ファイルが特定の関数を処理します
コードが混乱するのを防ぐ重要な方法は、ユーザー入力を取得した後、それを他の関数にリダイレクトすることです。対処する。原理は非常に単純で、php ファイルは必要な入力をすべて受け取り、その実行をクラス ファイル内の関数にリダイレクトします。たとえば、「index.php?page=profile&action=display」のような URL があるとします。 URL は profile.php によって取得され、アクションは「表示」です。次に、単純な switch 関数を使用して、実際の表示関数を実行します。 コードをコピー コードは次のとおりです。
require_once PROJECTROOT.'libs/messages.class.php';
$message = new Message ( );
switch ($action)
{
case 'display':
$message->display();
break;
...
上記のように、メッセージクラスを使用してswitchを開始しましたチェック。 $message は、クラス内の関数を呼び出すことによって使用される単なるオブジェクトです。
9. SQL ステートメントを理解し、常にサニタイズしてください
前に述べたように、99% の場合、PHP Web サイトで最も重要な部分はデータベースです。したがって、SQL の正しい使用方法に精通している必要があります。関連テーブルとより高度なテクニックを学びます。以下に MySQL を使用した関数の例を示し、この記事の関数 #7 を使用して確認します。
コードをコピーします コードは次のとおりです:
プライベート関数 getSentMessages($id)
{
$this->util->sanitizeInput($id);
$pm_table = $GLOBALS[' config'] ['privateMsg'];
$users = $GLOBALS['config']['users'];
$sql = "$pm_table PM、$users USR から name_sender として SELECT PM.*、USR.username を選択します。 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. オブジェクトが 1 つだけ必要な場合は、シングルトン パターンを使用します
PHP の非常に一般的な状況では、オブジェクトを 1 回作成するだけで、それをプログラム全体で使用することができます。この好例は、一度初期化されるとどこでも使用できるスマート変数です。この状況に適した実装は、シングルトン パターンです。サンプルコードは次のとおりです:
コードをコピー
コードは次のとおりです: 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 オブジェクトを作成します。それ以外の場合は、オブジェクトがすでに作成されており、それを返すだけでよいことを意味します。
http://www.bkjia.com/PHPjc/321734.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/321734.html技術記事大きな鏡をサーフボードとして使ったらどうなるでしょうか?より短い時間で波を征服できるかもしれませんが、これはサーフィンにとって正しい選択ではないことを心の底では確実に知っています。 ...