PHP が大規模システムの構築に適していないのはなぜですか?誰もがそれはセキュリティ上の問題だと考えるはずです。しかし、それだけではありません。以下に紹介させていただきます。
PHP はなぜ大規模システムでは使用できないのでしょうか?理由は何ですか?
紛らわしいライセンス
PHP は無料であり、マニュアルに記載されているすべての PHP モジュールも無料であると思われるかもしれません。違います! たとえば、PHP で PDF ファイルを生成したい場合、マニュアルには PDF と ClibPDF という 2 つのモジュールが記載されています。ただし、これらは両方とも商用ライセンスを取得しています。したがって、使用するすべてのモジュールについて、そのライセンスに同意する必要があります。
一貫性のない関数の命名規則
一部の関数名は複数の単語で構成されています。一般に、単語の組み合わせには次の 3 つの習慣があります:
直接結合: getnumberoffiles
アンダースコアで区切る: get_number_of_files
キャメルのルール: getNumberOfFiles
ほとんどの言語そのうちの1つを選択してください。 1つの中学校。ただし、PHPは使用されます。
魔法の引用地獄
魔法の引用は、SQL インジェクション攻撃から PHP スクリプトを保護できます。これはいい。ただし、何らかの理由で、php.ini でこの設定をオフにすることができます。したがって、柔軟なスクリプトを作成したい場合は、マジック参照がオンかオフかを常に確認する必要があります。このような「機能」はプログラミングを容易にするはずですが、実際にはプログラミングをより複雑にします。
多くの PHP モジュールはスレッドセーフではありません
数年前、Apache は Web サーバーのバージョン 2.0 をリリースしました。このバージョンでは、ソフトウェアの 1 つの部分で複数の部分を同時に実行できるマルチスレッド モードがサポートされています。 PHP の発明者は、PHP のコアはスレッドセーフだが、非コア モジュールはスレッドセーフではない可能性があると述べています。ただし、10 回中 9 回は、このモジュールを PHP スクリプトで使用したいと考えますが、これにより、スクリプトが Apache のマルチスレッド モードと互換性がなくなります。これが、PHP チームが Apache 2 のマルチスレッド モードで PHP を実行することを推奨しない理由です。 Apache 2 が不人気なままである理由の 1 つとして、PHP のマルチスレッド モードのサポートが不十分であることがよく挙げられます。
非標準の日付形式文字
多くのプログラマは、UNIX および C 言語に由来する日付形式文字に精通しています。他のいくつかのプログラミング言語はこの標準を採用していますが、奇妙なことに、PHP には完全に互換性のない独自の日付形式文字のセットがあります。 C では、「%j」は年間の日を表し、PHP では月の日を表します。ただし、事態をさらに混乱させるのは、Smarty (人気のある PHP テンプレート エンジン) の strftime 関数と date_format 関数では、C/UNIX 書式設定文字が使用されているということです。
推奨学習: PHP チュートリアル
以上がなぜ PHP では大規模システムができないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。