1. mysql_ 関数を使用しないでください
ついにその日が来ました。これからは mysql_ 関数を「使用すべきではない」だけではありません。 PHP 7 ではこれらがすべてコアから削除されているため、より優れた mysqli_ 関数、またはより柔軟な PDO 実装に移行する必要があります。
2. ゴミコードを書かないでください
これは理解しやすいかもしれませんが、PHP 7 の高速化により問題の一部が隠れてしまう可能性があるため、ますます重要になります。 PHP 7 に移行してサイトの速度が速くなったからといって、サイトの速度だけで満足しないでください。
速度がいかに重要であるか、そして物事をより良くする方法を理解するには、「速度の最適化の開始」の記事を参照してください。
開発者として、常にオンデマンドでスクリプトをロードし、可能な場合はスクリプトを接続し、効率的なデータベース クエリを作成し、可能な場合はキャッシュを使用するなどのことを行う必要があります。
3. ファイルの末尾に PHP 終了タグを使用しないでください
ご覧のとおり、ファイルが PHP コードで終わる場合、WordPress のコア コードのほとんどは末尾の PHP タグを削除します。実際、Zend Framework はこれを明確に無効にしています。 PHP ではファイルの末尾に終了タグを必要とせず、それを削除することで末尾に空白文字が追加されないようにすることができます。
4. 不必要な参照渡しをしないでください
私は個人的には参照渡しが好きではありません。便利な場合もありますが、コードの理解が難しくなり、結果の予測が困難になる場合もあります。
コードの実行が速くなると考えている人もいると言われていますが、一部の上級 PHP プログラマーによると、これは真実ではありません。
引用がなぜ悪いのかの例としては、PHP に shuffle() と sort() が組み込まれていることが挙げられます。処理された配列を返すのではなく、元の配列を変更しますが、これは非常に非論理的です。
5. ループ内でクエリを実行しないでください
ループ内でクエリを実行することは非常に無駄です。システムに不必要なストレスを与え、ループの外で同じ結果をより速く達成できる可能性があります。このようなものが必要な状況に遭遇した場合、私は通常、データ配列の構築に使用する 2 つの別々のクエリで問題を解決します。その後、配列を反復処理するので、その過程でクエリを実行する必要はありません。
ここではWordPressを使用しているため、一部例外がある場合があります。 get_post_meta() はデータベースから大量のデータを取得しますが、特定のブログ投稿のメタデータをループする場合は、これをループ内で使用できます。これは、WordPress が最初に呼び出すときに実際にすべてのメタデータを取得し、キャッシュするためです。後続の呼び出しでは、データベース呼び出しを行わずに、このキャッシュされたデータが使用されます。
これを理解する最良の方法は、関数のドキュメントを読み、Query Monitor などのツールを使用することです。
6. SQL クエリでは * を使用しないでください
もちろん、これは MySQL の問題ですが、私たちは PHP で SQL コードを書くことに慣れているので、ほぼ同じです。いずれにせよ、特にデータベースに多数の列がある場合は、できる限り SQL クエリでワイルドカードを使用しないでください。
必要な行を明示的に指定し、それらの行のみを取得する必要があります。これにより、使用されるリソースが削減され、データが保護され、内容が可能な限り明確になります。
SQL の場合は、利用可能なすべての関数を理解し、その速度を可能な限りテストする必要があります。平均値、合計、または同様の数値計算を計算する場合は、PHP 関数の代わりに SQL 関数を使用します。特定のクエリの速度がわからない場合は、それをテストし、他のコンパイルをいくつか試してから、最適なものを使用してください。
7. ユーザー入力を信頼しないでください
ユーザー入力を信頼するのは賢明ではありません。常に検証し、フィルタリングし、逃げ、チェックし、逃げ道を残しておきます。ユーザー データには 3 つの問題があります。私たち開発者はすべての可能性を考慮しているわけではないこと、データは多くの場合不正確であること、そして意図的に侵害される可能性があることです。
よく考えられたシステムがこれらの脅威から保護します。データベースを扱うときは、filter_var() などの組み込み関数を使用して適切な値を確認し、エスケープ (またはプリコンパイル) してください。
WordPress には問題を解決するための機能がいくつかあります。詳細については、「ユーザー データの検証、エスケープ、フィルタリング」の記事を参照してください。
8. 賢くならないでください
あなたの目標は、意図をより明確に表現するエレガントなコードを書くことです。複数の 3 値ロジック層やその他の手段を使用して、すべてを 1 単語の変数に短縮することで、各ページの 0.01 秒を最適化できる場合があります。しかし、これはあなたとあなたの周りの人たちにとって大きな問題を引き起こすだけです。
変数に賢明な名前を付け、コードを文書化し、簡潔さよりも明確さを優先します。大量のインライン値を必要とせず、多かれ少なかれドキュメント自体である標準のオブジェクト指向コードを使用する方がさらに良いでしょう。
9. 車輪の再発明をしないでください
PHP は古くから存在しており、Web サイトはさらに古くから存在しています。あなたが構築する必要があるものは何であれ、誰かがすでにそれを構築している可能性があります。他の人にサポートを求めることを恐れないでください。Github はあなたの友人であり、Composer、そして Packagist も同様です。
ロギング ツールから色補正ツール、パフォーマンス アナライザーから単体テスト フレームワーク、Mailchimp API から Twitter Bootstrap まで、すべてがキーを押す (またはコマンドを入力する) だけで利用可能です。ぜひ使用してください。
10. 他の言語を無視しないでください
あなたが PHP プログラマーであれば、今が少なくとも HTML、CSS、JavaScript、MySQL について理解する良い機会です。これらの言語をうまく扱えるようになったら、JavaScript を学び直しましょう。 JavaScript は jQuery ではありません。JavaScript をより効率的に使用するには、JavaScript を正しく学習する必要があります。
また、オブジェクト指向 PHP を学ぶことをお勧めします。これは時間を節約し、コード サイズが大きくなるとより良くなります。 C# や Java などの言語についても、OOP を理解すると理解しやすくなります。
パッケージマネージャー、ビルドスクリプト、CoffeeScript、LESS、SASS、YAML、スクリプトエンジン、その他の強力なツールについて学び、知識を広げてください。他のフレームワーク、特に Laravel を検討することを強くお勧めします。
Ruby、RoR、Android、iPhone、Windows Phone アプリ開発を学びながら、それらを活用して仕事をうまくやり遂げてみませんか?彼らは自分のコンフォートゾーンや仕事で求められるものから外れているので、これは無意味だと思うかもしれませんが、それが彼らなのです。どの言語にも、学ばなければならない実践的なことや、これまでに出会ったことのない新しいことがいくつかあります。トップの PHP 開発者全員が他の多くのプログラミング言語を知っているのは偶然ではありません。