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

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

Guanhui
Guanhui転載
2020-04-30 10:45:082626ブラウズ

php7 には多くの新しい機能や機能が導入されており、廃止された機能や機能もあります。これにより、以前は php7 に適用できたものの、php7 ではあまり適切ではないコードがいくつか発生しました。そのため、この記事では、その方法について説明します。ピットでphp7を避けてください。

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

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

2. ゴミコードを書かないでください

これは理解しやすいかもしれませんが、PHP 7 の高速化により、コードの内容が隠蔽される可能性があるため、ますます重要になります。いくつかの問題。 PHP 7 に移行してサイトの速度が速くなったからといって、サイトの速度だけで満足しないでください。

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

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

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

640?wx_fmt=jpeg

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

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

一部の人々は、コードの実行が速くなると考えていると言われていますが、一部の上級 PHP プログラマーによると、これは真実ではありません。

なぜ引用がダメなのかの例としては、PHP には shuffle() と sort() が組み込まれていることが挙げられます。処理された配列を返すのではなく、元の配列を変更しますが、これは非常に非論理的です。

5. ループ内でクエリを実行しないでください

ループ内でクエリを実行することは非常に無駄です。システムに不必要なストレスを与え、ループの外でより速く同じ結果を達成できる可能性があります。このようなものが必要な状況に遭遇した場合、私は通常、データ配列の構築に使用する 2 つの別々のクエリを使用して問題を解決します。その後、配列を反復処理するので、その過程でクエリを実行する必要はありません。

ここではWordPressを使用しているため、一部例外がある場合があります。 get_post_meta() はデータベースから大量のデータを取得しますが、特定のブログ投稿のメタデータをループする場合は、これをループ内で使用できます。これは、WordPress が最初に呼び出すときに実際にすべてのメタデータを取得し、キャッシュするためです。後続の呼び出しでは、データベース呼び出しを行わずに、このキャッシュされたデータが使用されます。

これを理解する最善の方法は、関数のドキュメントを読み、Query Monitor などのツールを使用することです。

6. *

は使用しないでください もちろん、これは 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 開発者全員が他の多くのプログラミング言語を知っているのは偶然ではありません。

推奨チュートリアル: 「PHP7 チュートリアル

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

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