ホームページ >バックエンド開発 >PHP7 >PHP7 で避けるべき 10 の落とし穴

PHP7 で避けるべき 10 の落とし穴

coldplay.xixi
coldplay.xixi転載
2021-02-12 10:13:113083ブラウズ

PHP7 で避けるべき 10 の落とし穴

推奨 (無料): PHP7

1. mysql_ 関数は使用しないでください。

ついにその日が来ました。これからは、mysql_ 関数を「使ってはいけない」だけではありません。 PHP 7 ではこれらがすべてコアから削除されているため、より優れた mysqli_ 関数、またはより柔軟な PDO 実装に移行する必要があります。

2. ジャンク コードを書かないでください

これは理解するのは簡単かもしれませんが、さらに複雑になります。さらに重要なのは、PHP 7 の速度向上によって問題の一部が隠れてしまう可能性があるためです。 PHP 7 に移行してサイトの速度が速くなったからといって、サイトの速度だけで満足しないでください。

開発者としては、オンデマンドでスクリプトをロードし、可能な場合はスクリプトに接続し、効率的なデータベース クエリを作成し、可能な場合はキャッシュを使用するなどのことを常に心がける必要があります。

3. ファイルの最後に PHP 終了タグを使用しないでください

ご覧ください。ファイルが次で終わるとき PHP コードの最後では、WordPress のコア コードのほとんどは最後の PHP タグを削除します。実際、Zend Framework はこれを明確に無効にしています。 PHP ではファイルの末尾に終了タグを必要とせず、それを削除することで末尾に空白文字が追加されないようにすることができます。

4. 不必要な参照渡しは行わないでください

私は個人的に pass-by は好きではありません。参照により。便利な場合もありますが、コードの理解が難しくなり、結果の予測が困難になる場合もあります。

一部の人々は、コードの実行が速くなると考えていると言われていますが、一部の上級 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 アプリ開発を学びながら、それらを活用して仕事をうまくやり遂げてみませんか?彼らは自分のコンフォートゾーンや仕事で求められる範囲外にいるので、これは無意味だと思うかもしれませんが、それが彼らなのです。どの言語にも、学ばなければならない実践的なことや、これまでに出会ったことのない新しいことがいくつかあります。

以上がPHP7 で避けるべき 10 の落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。