ホームページ >バックエンド開発 >PHPチュートリアル >トップ 10 人の PHP マスターの開発原則_PHP チュートリアル
WEB 開発の世界では、PHP は最も人気のある言語の 1 つですが、残念なことに、「ベスト プラクティス」を使用して PHP プログラムを作成する人はほとんどいません。ここでは、PHP の 10 のベスト プラクティスを紹介します。もちろん、それらはそれぞれマスターによって証明されています。
1. 適切なタイミングで PHP を使用する - Rasmus Lerdorf
PHP の作成者である Rasmus Lerdorf ほど PHP が合理的であることを理解している人はいません。彼は 1995 年に PHP 言語をリリースし、それ以来、PHP は現在に至っています。それは草原の火のように開発キャンプ全体を焼き尽くし、インターネットの世界を変えました。ただし、Rasmus はこのような理由で PHP を作成したわけではありません。 PHP は、WEB 開発者の現実的な問題を解決するために生まれました。
多くのオープンソース プロジェクトと同様に、PHP は人気が高まっていますが、その人気の動機は通常の哲学では説明できず、あまりにも人気があるため、ある種自画自賛的ですらあります。これは、Web のさまざまな問題を解決するためのツールの必要性によって引き起こされたケースとして使用できます。したがって、PHP が最初に登場したとき、そのようなツールのニーズはすべて PHP に集中していました。
ただし、PHP ですべての問題を解決できると期待することはできません。 Lerdorf 氏は、PHP は単なるツールであり、PHP がその能力を超えている状況は数多くあることを初めて認めました。
作業に応じて適切なツールを選択してください。私は多くの企業を訪問して PHP を導入して使用するよう説得してきましたが、これは PHP があらゆる問題に適しているという意味ではありません。これは、ほとんどの問題を解決できる単なるフロントエンド スクリプト言語です。
Web 開発者として、PHP を使用してすべての問題を解決しようとするのは非科学的であり、時間を無駄にします。 PHP が動作しない場合は、ためらわずに他の言語を試してください。
2. マルチテーブル ストレージを使用してスケーラビリティを向上させる – Matt Mullenweg
PHP に関する Matt Mullenweg の権威を疑問視する人は誰もいません。彼は地球上で最も人気のあるブログ システムを開発しました (強力なコミュニティに依存しています。 WordPress WordPress を作成した後、Matt と彼のチームは WordPress MU をベースとした無料のブログ サイトである WordPress.com プラットフォームを立ち上げました。現在、WordPress.com には約 400 万人のユーザーがおり、毎日 140,000 件以上の投稿を投稿しています。 (WordPress.com の統計情報をさらに表示するには、ここをクリックしてください。)
ウェブサイトを簡単に拡張する方法を知っている人がいるとしたら、それは Matt Mullenweg です。 2006 年、Matt は WordPress のデータ構造に将来を見据えた改善を加え、WordPress MU がすべてのブログ データを 1 つの巨大なテーブルに詰め込むのではなく、ブログごとに独立した MYSQL テーブルを使用する理由を説明しました。
この方法をテストしましたが、スケーラビリティを拡張するにはコストがかかりすぎることがわかりました。全体的なデータ構造を使用すると、大量のトラフィックに直面してサーバー ハードウェアの問題に直面することになります。 MU内。ユーザーは個別のテーブルに分散されており、簡単に整理できます。たとえば、WordPress.com はユーザー データを 4,096 のデータベースに保存しており、これらのデータベースは大規模なデータ アクセスを分散し、トラフィックや圧力を分散することができます。
データ テーブルの移植性により、コード (ブログ) の実行が高速になり、システムのスケーラビリティが向上します。 Matt は、強力なキャッシュ戦略と柔軟なデータベース利用戦略を利用して、最も人気のある Facebook と WordPress.com が PHP で安定して動作し、驚くべき量のトラフィックを処理できることを人々に示しました。
3. ユーザーを決して信用しない - Dave Child
Dave Child は、彼の優れた「多くのプログラミング言語のチートシート」で有名な Web サイト、Added Bytes (以前の ilovejackdaniels.com) の中心人物です。 Dave は英国の多くの企業に勤務しており、プログラミング界の権威としての地位を確立しています。
Dave は、PHP 開発者向けに、「PHP で安全なコードを書く」にまとめられた思慮深いアドバイスをたくさん提供しています。ユーザーを決して信頼しないでください。ユーザーはあなたを傷つけることさえあります。
何度繰り返しても足りないほどの Web 開発の基本原則があります。それは、決してユーザーを信頼せず、Web サイト上のすべてのデータ単位がユーザーから収集された悪意のあるコードであると想定しないことです。多くの場合、クライアント上のフォームによって送信されたコンテンツを確認するには Javascript を使用する必要があります。これに慣れている場合は、これが良い習慣になります。セキュリティが重要である場合、これは学ぶべき最も重要な原則です。
デイブは現在、著書「Writing Secure PHP」シリーズの例を整理することに取り組んでいます。本の最後に、次のように述べています。
最後に、少し偏執的になってください。自分のサイトが決して攻撃されることはないと考えている場合を除き、問題に正面から向き合ってください。実際に攻撃されたら、悪い状況に陥ることになるからです。すべてのユーザーをサイトに攻撃と防御をもたらすハッカーと見なし、サイトのセキュリティを保護するためにあらゆる手段を講じ、同時に対応する問題の解決策を考える必要があります。
4. PHP キャッシュをもっと使用する – Ben Balbo
Ben Balbo は、開発者やデザイナーにガイダンスを提供する Web サイトである Site Point を開発しています。彼は Melbourne PHP Development and Open Source Club のメンバーであるため、PHP について一定の理解があり、PHP キャッシュに関して一定のアイデアと経験を持っています。
トラフィックが多いが頻繁に更新されないサイト (ある種の CMS をベースにしたブログなど) の場合は、変更が必要になる可能性があります。これらの変更にはそれほど時間はかかりませんが、時間がかかります。素晴らしい貢献。 複雑で更新の速いサイトにキャッシュ メカニズムを確立したい場合、そのプロセスは複雑になる可能性がありますが、利点は明らかです。
PHP キャッシュ技術は数多くありますが、Ben は次の技術を推奨しました:
◆キャッシュ機能の実行結果
◆有効期限を設定する
◆IE でダウンロードしたファイルをキャッシュする
◆テンプレート キャッシュ技術
◆Cache_Lite
動的言語としての PHP の特性により、キャッシュのメカニズムは頻繁に更新されないサイトにとって非常に重要です。
5. IDE、テンプレート、スニペットを使用して PHP 開発を加速する – Chad Kieffer
Chad Kieffer は、UI デザインとデータベースの最適化から休憩を取るとき、ブログ 2 tablespoons で多くの技術的な経験を共有しています。チャドは多くの面で包括的な開発を行っているため、他のプログラマーが見つけられない問題を頻繁に見つけて、関連する経験、特に Web サイト開発方法を形成することができます。彼はウェブサイト開発のあらゆる側面に携わっているため、彼のアドバイスはウェブサイト開発の全体像を改善するのに非常に役立ちます。
Chad は、Eclipse PDT (Eclipse の PHP 開発パッケージ) のような IDE を使用し、いくつかのテンプレート テクノロジとオープン ソース プロジェクトを使用することで、PHP の開発速度を効果的に向上できると信じています。
コンパクトな計画、長い To Do リストと期限により、開発者は非常にイライラします。ただし、Eclipse テンプレートなどの一部の機能を使用すると、コーディング時間とエラーの可能性を効果的に削減できます。
一般的に、どのプロジェクトでも自動化の度合いが高くなるほど、プロジェクトの完了にかかる時間は短くなります。頻繁に使用されるフレームワークとテンプレートの開発に時間を費やすと、後でさらに時間を節約できます。同時に、Eclipse や PDT パッケージなどの IDE を使用すると、IDE が自動的に終了し、セミコロンを入力してローカルでデバッグできるため、効率が大幅に向上することがわかります。
6. PHP フィルター関数を上手に活用する – Joey Sochacki
Joey Sochacki は Matt Mullenweg ほど有名ではないかもしれませんが、経験豊かな開発者でもあり、ブログ Devolio を通じて多くの技術的経験を共有しています
Joey は、PHP コードを作成するときにフィルタリングが必要な場所がたくさんあるにもかかわらず、PHP の組み込みフィルタリング機能に注意を払うプログラマーは多くないことに気付きました。
データのフィルタリングは頻繁に必要になることですが、機能豊富な PHP 組み込みフィルタリング関数の多くは知られていません。 filter_* などの PHP 組み込み関数を使用すると、データ型検証/URL/電子メールおよび IP アドレス検証/特殊文字処理などを含む、ほぼすべてのフィルタリング タスクを処理できます。
フィルタリングは複雑なものですが、joey の発見はあなたに多くのインスピレーションを与え、PHP の強力なフィルタリング機能を認識させることになると思います。
7. PHP フレームワークを使用する - Josh Sharp
Zend、CakePHP、Code Igniter、またはその他の PHP フレームワークを使用するかどうかについては多くの論争がありますが、Web 開発者の心の中には独自のフレームワークがあります。測定基準。
Josh Sharp は、パンとバターのサービスを提供する Web サイトを自分で作成したため、PHP フレームワークを使用して Web サイトを開発した経験があります。彼は、プロジェクト開発に PHP フレームワークを使用すると、効果的に時間を節約し、エラーの可能性を減らすことができると信じています。なぜ?それは、PHP は本当に簡単に始めることができると感じているからです。
PHP の使いやすさには時々欠陥があります。これは、構文が緩いために多くの誤ったコードが作成されることが多いためです。ただし、PHP フレームワークを使用すると、エラーの可能性が大幅に減少します。
PHP フレームワークを使用すると、コード構造がより標準化され、時間を大幅に節約できます。
8. PHP フレームワークを使用しない – Rasmus Lerdorf
Josh の見解に反して、PHP の創始者である Rasmus Lerdorf は、PHP フレームワークを使用しないのが最善だと考えています。フレームワークに基づいていない PHP の方がパフォーマンスが良いためです。 Drupalcon 2008 での講演で、Rasmus 氏は「Hello World」の例を使用して、あるフレームワーク PHP と単純な PHP のパフォーマンスを比較しました。その結果、フレームワーク PHP のパフォーマンスが大幅に遅れていることがわかりました。
9. バッチ処理を使用する – Jack D. Herrington
Jack Herrington は PHP の世界に精通しており、有名な IBM DeveloperWorks に 30 以上の記事を寄稿しており、書籍「PHP Hacks」も出版しています。彼は本当の専門家です。
Herrington は、バックグラウンドで実行できるプログラム スクリプトをバッチ処理と Cron を使用して置き換えることを推奨しています。Web ユーザーはオンラインでの処理を待ちたがらないため、一部のものはバックグラウンドで処理する方が適しています。
確かに、場合によっては、これは少しやりすぎですが、Cron、MySQL、PHP オブジェクト指向メソッド、Pear::DB などの便利なツールを使用してバッチ処理ツールを作成することは、複雑な問題ではないことがはっきりわかります。 。
Jack は、cron、PHP、MySQL を使用してバックグラウンドで一部のタスクを処理する方が、マルチプロセスのビジネス ロジックよりもはるかにコスト効率が高いと考えています。
両方の方法を試してみましたが、Cron は「Keep It Simple, Stupid」(KISS) の原則に非常に一致しており、バックグラウンド処理が簡単になります。マルチプロセスのビジネスロジックと比較して、メモリオーバーフローのリスクがありません。単純なバッチ スクリプトを作成し、cron で実行できます。このスクリプトは、処理する必要のあるタスクがあるかどうかを定期的にチェックし、処理後に自動的に終了するため、プロセスが停止しているかどうかを心配する必要はありません。無限ループにはまってしまいました。
10. タイムリーなエラー報告を有効にする – David Cummings
David Cummings は CMS ソフトウェア サービスの提供を専門とする会社を経営しており、PHP 開発で非常に豊富な経験を持っています。 David はかつて「最初に学んでいればよかった 2 つの PHP ヒント」を書きました。そのうちの 1 つは、時間内のエラー報告を有効にすることで、時間を大幅に節約できるというものでした。
私は人々に、最も重要なことは PHP でのエラー報告を最大限に高めることだと言いますが、なぜですか? PHP には多くの小さな問題が隠されている可能性があるためです。
◆事前定義されていない変数
◆コード スニペットで参照される使用できない変数
◆未定義の定数が使用されている これらの要素は、オブジェクトを使用してクラス ライブラリを作成する人以外は大した問題ではないように思えるかもしれません。志向的なアプローチ。多くの場合、エラー報告をオフにすると、コードの保守コストが高くなる可能性があります。
エラー レポートはコードの問題を簡単に見つけるのに役立ちます。エラー レポートのレベルが十分に高い場合は、微妙なエラーをすぐに発見できるため、全体的なデバッグ時間を節約できます。