ホームページ バックエンド開発 PHPチュートリアル 大規模システムにとって PHP はなぜ煩わしいのか_PHP チュートリアル

大規模システムにとって PHP はなぜ煩わしいのか_PHP チュートリアル

Jul 13, 2016 pm 05:19 PM
php なぜ 大きい 開発する 使用 システム

私は過去 4 年間、PHP アプリケーション開発に取り組んできました。 PHPは本当に書きやすいです。しかし、PHP には非常に重大な欠陥もいくつかあります。

以下に、小規模なアマチュア Web サイトよりも大きな Web サイトに PHP が適さない私の理由を述べます。

1. 再帰のサポートが不十分
再帰は、関数がそれ自体を呼び出すメカニズムです。これは、複雑なものを非常に単純なものに変えることができる強力な機能です。再帰の使用例はクイックソートです)。残念ながら、PHP は再帰があまり得意ではありません。 PHP 開発者の Zeev 氏は、「PHP 4.0Zend は、ヒープ アプローチではなく、高密度データに対してスタック アプローチを使用しています。これは、許容できる再帰関数の数の制限が他の言語よりも大幅に小さいことを意味します。バグを参照してください。」と述べています。 1901年。これは非常に悪い言い訳です。すべてのプログラミング言語は適切な再帰サポートを提供する必要があります。

2. 多くの PHP モジュールはスレッドセーフではありません
数年前、Apache は Web サーバーのバージョン 2.0 をリリースしました。このバージョンでは、ソフトウェアの 1 つの部分で複数の部分を同時に実行できるマルチスレッド モードがサポートされています。 PHP の発明者は、PHP のコアはスレッドセーフだが、非コア モジュールはスレッドセーフではない可能性があると述べています。しかし、十中八九、このモジュールを PHP スクリプトで使用したいと考えますが、これにより、スクリプトが Apache のマルチスレッド モードと互換性がなくなります。これが、PHP チームが Apache 2 のマルチスレッド モードで PHP を実行することを推奨しない理由です。 Apache 2 が不人気なままである理由の 1 つとして、PHP のマルチスレッド モードのサポートが不十分であることがよく挙げられます。

3. PHP は商用アプリケーションによって機能不全に陥ります
キャッシュを使用すると、PHP のパフォーマンスが 500% 向上します [ベンチマーク テストを参照]。では、なぜキャッシュが PHP に組み込まれていないのでしょうか? PHP のメーカーである Zend は独自の Zend Accelerator を販売しているため、当然ながら商用製品を捨てたくはありません。

しかし、別の代替手段があります。APC はその後、無料のアクセラレータである Zend Optimizer を立ち上げました (Translator)

4. 名前空間はありません 誰かがファイルを読み取るための PHP モジュールを作成したと想像してください。モジュール内の 1 つの関数は read と呼ばれます。次に、別の人のモジュールが Web ページを読み取ることができます。この Web ページには、read 関数も含まれています。 PHP はどちらの関数を使用するかを認識できないため、これら 2 つのモジュールを同時に使用することはできません。

しかし、非常に簡単な解決策があります。それは名前空間です。かつて誰かがこの機能を PHP5 に追加することを提案しましたが、残念ながら彼はそうしませんでした。名前空間を使用しない場合、名前の競合を避けるために、各関数の先頭にモジュール名を付ける必要があります。その結果、xsl_xsltprocessor_transform_to_xml などの非常に長い関数名が生成され、コードの作成と理解が困難になります。

5. 非標準の日付形式文字 多くのプログラマーは、UNIX および C 言語に由来する日付形式文字に精通しています。他のいくつかのプログラミング言語はこの標準を採用していますが、奇妙なことに、PHP には完全に互換性のない独自の日付形式文字のセットがあります。 C では、「%j」は年間の日を表し、PHP では月の日を表します。ただし、事態をさらに混乱させるのは、Smarty (人気のある PHP テンプレート エンジン) の strftime 関数と date_format 関数では C/UNIX 書式文字が使用されていることです。

6. 紛らわしいライセンス

PHP は無料であり、マニュアルに記載されているすべての PHP モジュールも無料であると思われるかもしれません。間違っている!たとえば、PHP で PDF ファイルを生成する場合、マニュアルには PDF と ClibPDF という 2 つのモジュールが記載されています。ただし、これらは両方とも商用ライセンスを取得しています。したがって、使用するすべてのモジュールについて、そのライセンスに同意する必要があります。

7. 一貫性のない関数命名規則

一部の関数名は複数の単語で構成されています。単語の組み合わせには一般に 3 つの習慣があります:
直接スプライシング: getnumberoffiles

アンダースコアで区切る: get_number_of_files

Camel のルール: getNumberOfFiles
ほとんどの言語でこれらのいずれかを選択します。ただし、PHPは使用されます。

たとえば、いくつかの特殊文字を HTML エンティティに変換する場合は、関数 htmlentities を使用して単語を直接連結します)。逆の機能を使用したい場合は、弟の html_entity_decode を使用する必要があります。何らかの特別な理由により、この関数名には単語がアンダースコアで区切られています。これはどうやってできるの? strpadという機能があるのはご存知でしょうか。それとも彼はstr_padですか?毎回、シンボルが何であるかを確認するか、エラーを待つ必要があります。関数では大文字と小文字が区別されないため、PHP では rawurldecode と RawUrlDecode に違いはありません。これも良くありません。両方が使用されており、見た目が異なっており、読者を混乱させます。

8. 魔法​​の引用地獄

魔法の引用) は、SQL インジェクション攻撃から PHP スクリプトを保護できます。これはいい。ただし、何らかの理由で、php.ini でこの構成をオフにすることができます。したがって、柔軟なスクリプトを作成したい場合は、マジック参照がオンかオフかを常に確認する必要があります。このような「機能」はプログラミングを容易にするはずですが、実際にはプログラミングをより複雑にします。

9. 標準フレームワークの欠如
全体的なフレームワークのない成長中の Web サイトは、最終的にメンテナンスの悪夢に変わります。フレームワークを使用すると、多くのタスクが簡単になります。現在最も人気のあるフレームワーク モデルは MVC モデルで、プレゼンテーション層、ビジネス ロジック、データベース アクセスが分離されています。

多くの PHP Web サイトは MVC モデルを使用しません。彼らにはフレームすらありません。現在でも PHP フレームワークはいくつかあり、自分で作成することもできます。PHP に関する記事やマニュアルはフレームワークをまったく改善しません。 JSP 開発者は Struts などのフレームワークを使用し、ASP 開発者は .Net を使用しますが、これらの概念は PHP 開発者に広く理解されているようです。これは、PHP が実際にどれほどプロフェッショナルであるかを示しています。

概要: 何が問題ですか?

非常に小規模なプロジェクトの場合、非常に満足のいくプログラミング言語となる可能性があります。しかし、より大規模で複雑なプロジェクトの場合、PHP は弱点を示します。探索を続けると、私が述べた問題のいくつかに対する解決策が見つかるでしょう。では、解決策がわかったら、それを修正してみませんか?また、これらの修正がマニュアルに記載されていないのはなぜですか?

オープンソース言語が非常に人気があるのは良いことです。残念ながら、それは素晴らしい言語ではありません。いつかすべての問題が PHP6 で解決されることを願っています。 ) であれば、オープンソースでありながら使いやすいオープンソース言語が手に入ります。

5 つを超えるスクリプト ページを含むプロジェクトを開始したい場合は、C#/ASP.Net または Java/JSP を検討した方がよいでしょう。あるいは Python もより良い選択であるかもしれません。

この記事を書いた後、他の同様の記事について何人かの人が私に教えてくれました:
大規模な Web サイトで PHP を使用した経験
「PHP と Perl の対照」
私は PHP が嫌い
PHP の煩わしさ


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/589777.html技術記事私は過去 4 年間、PHP アプリケーション開発に取り組んできました。 PHPは本当に書きやすいです。しかし、PHP には非常に重大な欠陥もいくつかあります。 以下にPH...
の理由を述べます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

See all articles