PHP マスターの 10 の原則

WBOY
WBOYオリジナル
2016-06-23 14:32:591115ブラウズ

Glen Stansberry 2008 年 9 月 8 日、151 件のコメント付き

共有

4diggsdigg

電子メール マーケティングの業界リーダーを発見してください。今すぐ iContact を無料でお試しください!

PHP の普及により、それはあまりにも簡単になりました必要なことを正確に実行するためのスクリプトまたはスニペットを見つけます。残念ながら、PHP スクリプトを作成するときに何が「良い習慣」で、何が良くないのかを判断するフィルターはありません。私たちは、PHP のベスト プラクティスをしっかりと理解していることを証明した、信頼できる情報源を必要としています。

高品位な PHP プログラミングのために従うべき最良の原則を示してくれる PHP マスターが必要です。

1. PHP は次の場合にのみ使用してください。君はそれが要る ? Rasmus Lerdorf

PHP の機能を知るには、PHP の作成者ほど優れたリソースはありません。 Rasmus Lerdorf は 1995 年に PHP を作成し、それ以来、この言語は開発者コミュニティを通じて野火のように広がり、インターネットの様相を変えました。ただし、ラスムスはそのような意図で PHP を作成したわけではありません。 PHP は、Web 開発の問題を解決する必要性から作成されました。

そして、その後人気を博した多くのオープンソース プロジェクトと同様に、その動機は決して哲学的ではなく、ナルシストですらありませんでした。それは純粋に、現実世界の Web 関連の問題を解決するツールが必要な場合でした。 1994 年には、Web 開発ツールに関しては選択肢がかなり限られていました。

ただし、すべてに PHP を使用できるわけではありません。 Lerdorf は、PHP は実際にはツールボックスの中の単なるツールであり、PHP にも限界があることを初めて認めました。

仕事に適したツールを使用してください。私は PHP を完全に導入し、あらゆる場所に PHP を導入している企業に出会ってきましたが、PHP はあらゆる問題に適した汎用言語であることを意図したものではありませんでした。 Web のフロントエンド スクリプト言語として最も適しています。

すべてに PHP を使用しようとするのは効率的ではありませんし、Web 開発者としての時間を最大限に活用することは間違いありません。 PHP がプロジェクトにうまくいかない場合でも、他の言語を使用することを恐れないでください。

2. スケーラビリティのために PHP と MYSQL で多くのテーブルを使用しますか? Matt Mullenweg

PHP における Matt Mullenweg の権威に疑問を抱く人は誰もいません。彼は、(熱狂的なコミュニティとともに) 地球上で最も人気のあるブログ システムである Wordpress を開発しました。 Wordpress を作成した後、Matt とその会社は、複数のブログに対応する Wordpress MU コード ベースのブログ ソフトウェアをベースにした無料のブログ サイトである優れた Wordpress.com を立ち上げました。この記事の執筆時点で、Wordpress.com は 400 万を超えるブログをホストしており、そのユーザーは現在 140,000 を超える投稿を書いています。 (Wordpress.com の使用状況に関するさらに興味深い統計は、こちらでご覧いただけます。)

Web サイトを拡張する方法を知っている人がいるとしたら、それは Matt Mullenweg です。 2006 年に、Matt は Wordpress のデータベース構造について洞察を与え、すべてのブログに 1 つの巨大な「モノリシック」テーブルを使用するのではなく、Wordpress MU がブログごとに個別の MySQL テーブルを使用する理由を説明しました。

私たちは MU に対してこのアプローチをテストしました。 、しかし、ある時点を超えてスケ​​ールするにはコストが高すぎることがわかりました。モノリシック構造では、ハードウェアに基づいて壁にぶつかります。 MU では、ユーザーは分割されており、簡単にパーティション化できます。たとえば、WordPress.com では、4096 のデータベース間でユーザーがパーティション化されているため、非常に安価かつ効率的に、数十万人、さらには数百万人のユーザーと非常に高いレベルのトラフィックまで拡張できます。 。

テーブルを移行できるため、コードと最終的にはブログの実行がはるかに速くなり、拡張が容易になります。 Matt は、大量のキャッシュと賢いデータベースの使用に加えて、Facebook や Wordpress.com などの非常に人気のあるサイトが PHP を使用せずに実行でき、信じられないほどのトラフィック負荷を処理できることを示しました。 Dave Child

Dave Child は、最近名前が変更された Updated Bytes (以前の ilovejackdaniels.com) ウェブサイトの発案者 (ティーヒー) で、多くのプログラミング言語に対する Dave の優れたチートシートを特集しています。 Dave は英国の多くの開発会社に勤務し、プログラミング界の権威としての地位を確立しました。

PHP で安全なコードを書くことに関して、Dave は賢明なアドバイスをいくつか提供しています: ユーザーを信頼してはいけない。

したがって、すべての Web 開発の鉄則は、どれだけ強調しても足りませんが、「決して、決して、ユーザーを信頼しない」です。サイトがユーザーから収集するすべてのデータに悪意のあるコードが含まれていると仮定します。いつも。これには、JavaScript を使用するなど、クライアント側の検証でチェックしたと思われるデータが含まれます。それを管理できれば、良いスタートを切ることができるでしょう。 PHP のセキュリティが重要である場合、この 1 点を学ぶことが最も重要です。

Dave は、「安全な PHP の書き方」シリーズの第 1 部、第 2 部、および第 3 部で安全な実践の具体例を続けています。しかし、彼の究極のポイントは次のとおりです:

最後に、徹底的に偏執的になってください。
自分のサイトが攻撃にさらされたり、何らかの問題に直面したりすることはないと想定している場合、最終的に何か問題が発生したときに、大規模な事態が発生することになります。トラブルの量。一方、サイトを訪れるすべての訪問者があなたを狙っていて、永久に戦争状態にあると仮定すれば、サイトの安全を確保し、万が一の事態に備えることができます。

4. PHP キャッシュに投資しますか? Ben Balbo

Ben Balbo は、開発者やデザイナー向けの非常に評判の高いチュートリアル サイトである Site Point で執筆しています。彼はメルボルン PHP ユーザー グループとオープンソース開発者クラブの両方の委員を務めているため、この言語についてある程度の知識を持っています。 PHP 開発者およびトレーナーとしての Ben の経歴を考えれば、PHP キャッシュについてもう少し考えて準備をすることを勧めているのは当然のことです。

ブログなどの、忙しくて静的な Web サイトがコンテンツ管理を通じて管理されている場合は、システムを変更する必要はほとんどありませんが、わずかな時間の投資によってパフォーマンスが大幅に向上する可能性があります。ポータルやショッピング カート システムなど、ユーザーごとにコンテンツを生成するより複雑なサイトにキャッシュを設定することは、少し難しくて時間がかかることがわかりますが、それでも利点は明らかです。

さまざまな方法があります。 PHP でキャッシュするためのテクニック、そして Ben は記事の中で、次のような大きなもののいくつかに触れています:

キャッシュされた関数呼び出し、有効期限ヘッダーの設定、IE テンプレートでのファイルのダウンロードのキャッシュ、Cache_Lite のキャッシュ

など。 PHP のような動的言語の性質上、頻繁にアクセスされ、頻繁に変更されないページの部分を保存するにはキャッシュが重要です。

5. IDE、テンプレート、スニペットを使用して PHP 開発をスピードアップしますか? Chad Kieffer

Chad Kieffer は、ユーザー インターフェイスを変更したりデータベースを管理したりするのに忙しいときは、ブログから大さじ 2 杯の専門知識に関するアドバイスを提供しています。 Chad は専門分野が広いため、特に Web サイト開発に対する総合的なアプローチに関して、他のプログラマーが理解できない全体像を見ることができます。彼は開発プロセスのあらゆる側面を専門としているため、プロジェクト全体をまとめる際に彼が提供できるあらゆる洞察が役立つでしょう。

Chad は、Eclipse PDT (Eclipse の PHP 開発パッケージ) のような IDE をテンプレートを組み合わせて使用​​すると信じています。

多忙なスケジュール、長い To Do リスト、期限があるため、開発者はツールが提供する高度な機能の一部に慣れるのが困難です。 Eclipse テンプレートなどの一部の機能を使用すると、コーディング時間とエラーを大幅に削減できるため、これは残念です。

常識では、タスクを自動化できれば、プロジェクトをより早く完了できると言われています。ダンの理論にも同じことが当てはまります。時間をかけて何度も使用するテンプレートを作成することで、コーディングの繰り返し部分を自動化する時間を大幅に節約できます。

Eclipse などの IDE と PDT パッケージを使用すると、開発時間が徐々に短縮されることがわかります。 IDE は括弧を自動的に閉じ、欠落しているセミコロンを追加し、サーバーにアップロードしなくてもエディター内でデバッグできるようにします。
(Chad には、Eclipse PDT の使用開始と IDE の利点に関する気の利いたチュートリアルがあります。興味があれば一般的に読んでください。)

6. PHP のフィルター関数をさらに活用しますか? Joey Sochacki

Joey Sochacki は、PHP コミュニティでは Matt Mullenweg ほど有名ではないかもしれませんが、経験豊富な Web 開発者であり、その過程で得たヒントをブログ Devolio で共有しています。

Joey は、たとえPHP コードを作成する際には大量のフィルタリングを実行する必要がありますが、PHP のフィルタ関数を利用するプログラマーは多くありません。

データのフィルタリング。私たち全員がそれをしなければなりません。私たちの全員ではないにしても、ほとんどの人はそれを行うことを軽蔑します。ただし、ほとんどの人には知られていませんが、PHP の filter_* 関数を使用すると、あらゆる種類のフィルタリングと検証を行うことができます。 PHP の filter_* 関数を使用すると、データ型、URL、電子メール アドレス、IP アドレスの検証とサニタイズ、不正な文字の削除などをすべて比較的簡単に行うことができます。

フィルタリングは難しい場合がありますが、このガイドは非常に役立ちます。 Joey の助けを借りて、フィルタのインストール方法と、PHP のフィルタリング機能を利用してほぼすべてのものをフィルタリングする方法を学びます。

7. PHP フレームワークを使用しますか? Josh Sharp

Zend、CakePHP、Code Igniter などの PHP フレームワークを使用するか、またはその他のフレームワークを使用するかについては、常に議論がありました。これを使用することには長所と短所があり、多くの開発者がこの道を進むべきかどうかについて独自の意見を持っています。

Josh Sharp は、クライアント向けの Web サイトの作成を生業とする Web 開発者です。だからこそ、プログラミング時に時間を節約し、間違いをなくすために PHP フレームワークを使用するのが良いという彼の言葉を信頼すべきです。なぜ? Josh は、PHP が学習するのが簡単すぎるからだと信じています。

しかし、PHP の使いやすさは欠点でもあります。作成するコードの構造に対する制限が少ないため、不適切なコードを作成することがはるかに簡単になります。しかし、解決策はあります。フレームワークを使用することです。

PHP フレームワークは、プログラミング方法の標準化に役立ち、開発プロセスにかかる時間を大幅に節約できます。 PHP フレームワークを使用する利点について詳しくは、Josh のブログをご覧ください。

8. PHP フレームワークを使用しませんか? Rasmus Lerdorf

PHP フレームワークを使用すべきであるという Josh の信念に反して、PHP のゴッドファーザーである Rasmus Lerdorf 自身は、フレームワークはそれほど素晴らしいものではないと信じています。なぜ?単純な PHP よりもパフォーマンスがはるかに遅いためです。

Drupalcon 2008 での Rasmus のプレゼンテーション中、Rasmus は PHP ページへの応答時間を単純な「Hello World」の例と比較し、それをいくつかの PHP フレームワークと比較しました (スライド 24 ~ 32) )、PHP フレームワークがそのままの PHP よりもはるかに遅いことを示しました。

Rasmus が PHP フレームワークによるパフォーマンスの低下を示すプレゼンテーション全体を視聴または視聴できます。つまり、Rasmus は、純粋な PHP を使用する場合とは対照的に、PHP フレームワークを使用するとパフォーマンスに大きな影響が出るということを示しています。

[注: PHP フレームワークを使用する必要がある場合、Rasmus は Code Igniter を最も気に入っています。フレームワークのようなものです。]

9. バッチ処理を使用しますか? Jack D. Herrington

Jack Herrington は PHP と開発の世界に精通しています。 Jack は、権威ある IBM DeveloperWorks に 30 以上の記事を書いていることに加えて、PHP Hacks などのプログラミング本も出版しています。 Jack は正真正銘の専門家です。

Herrington は、バッチ処理と cron を使用して、バックグラウンドで処理できるタスクに取り組むことをお勧めします。 Web ユーザーは、Web 上でタスクが完了するまで長く待ちたくありません。時間がかかるジョブの中には、バックグラウンドで実行する方が適しているものもあります。

確かに、小さなケースでは、小さなジョブを処理するためにヘルパー スレッドを起動する方が少し簡単です。しかし、従来のツールを使用すると、それを簡単に確認できますか? cron、MySQL、標準オブジェクト指向 PHP、および Pear::DB ? PHP アプリケーションでのバッチ ジョブの作成は、実行も展開も保守も簡単です。

Jack はシンプルさを信じており、サーバー上でスレッドを使用する代わりに、cron、PHP、MySQL の単純な組み合わせを使用してタスクを処理します。私は両方をやったことがありますが、cron には「Keep It Simple, Stupid」(KISS) 原則の利点があると思います。バックグラウンド処理をシンプルに保ちます。永久に実行され、メモリ リークが発生しないマルチスレッドのジョブ処理アプリケーションを使用する代わりに、cron が開始する単純なバッチ スクリプトを使用します。スクリプトは、何かする必要があるかどうかを判断し、実行して終了します。メモリリークを心配する必要はありません。スレッドが停止したり、無限ループに陥ったりすることを心配する必要はありません。

10. エラー報告をすぐにオンにしますか? David Cummings

David Cummings は、コンテンツ管理システムを専門とする自身のソフトウェア会社を経営しており、いくつかの賞を受賞しています。 PHP アプリケーションを効率的に開発する方法を知っている人がいるとしたら、それは Dave です。

David は、SitePoint の記事で、最初に学んでいればよかった 2 つの PHP のヒントについて書きました。ヒントの 1 つは、エラー報告をすぐに有効にすることです。長期的には、かなりの時間を節約できます。

PHP を使用する人に私が伝える最も重要なことは、エラー報告を最大レベルにすることです。なぜこれをやりたいのでしょうか?一般に、エラー報告は、次のような多くの小さなことを隠すレベルに設定されます:

事前に変数を宣言する、コードのそのセグメントで使用できない変数を参照する、または設定されていない定義を使用する。

これらの要素はそれほど大したことではないように思えるかもしれません?関数とクラスを使用した構造化プログラムまたはオブジェクト指向プログラムを開発するまでは。多くの場合、エラー レポートを行わずにコードを記述すると、変数のスペルが間違っていたりアクセスできないために機能しない長い関数を探し回ったりするため、何時間ものコストがかかります。

エラー レポートを使用すると、エラーの理由を見つけることがはるかに簡単になります。 PHP のエラー報告機能が高レベルに設定されていれば、コード内の小さなバグをすぐに特定できます。 PHP にバグを見つけてもらうことで、時間を無駄にせずに済みます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。