検索
ホームページバックエンド開発PHPチュートリアルZend Engine 2.0の設計図からPHPの未来を見る(1)_PHPチュートリアル

雑談

まず、この記事を書いた当初の意図。 Zend Engine 2.0 に関する設計図ドキュメントを入手してからしばらく経ちましたが、それを読んだ後、レビューを書きたくなりました。ドキュメントの説明によると、次世代の PHP はより一貫性のあるオブジェクトになるためです。開発に使用される言語には、少なくともよりオブジェクト指向の機能が与えられます。しかし、それに伴う疑問は、迅速な Web 開発を当初の目標とする PHP のような言語が、包括的なものになるようにそれ自体を修正する価値があるかどうかということです。この問題については、いくつかのレビュー記事で議論する必要があると思われるので、私自身の意見を述べてみたいと思います。しかし、色々なことがあり、その衝動が少しずつお腹に戻ってきて、最近になって初めて思い出したので、設計図の資料を何度も読み返して、この記事を思いつきました。 (最初にこの英語の文書を入手したとき、私はこの設計図文書を中国語に翻訳する予定でしたが、第一に、これは最終的な設計図ではないこと、第二に、全員が原文を直接読む習慣を身につける必要があること、第三に、翻訳は常に不明確になるため、当面はあきらめます。ただし、この記事を書いたとき、私はそれを「危険を冒して」翻訳することにしました。もしあれば、お気軽に修正してください。意味を正確に伝えることができません)

2 番目がこの記事の焦点です。このレビューでは、将来 PHP で大幅に強化されるオブジェクト指向の機能に焦点を当てます。あなたが PHP 開発者であれば、PHP 言語のオブジェクト指向機能のいくつかを知っているはずだと思いますが、PHP は一般に「非常に高速な開発環境」で使用されるため (これは私が自分で作った造語で、一部の顧客を指します)指向の Web サイト開発は、構築期間が非常に短く、顧客の要件が不明確であることが特徴です)。そのため、そのオブジェクト機能を実際に広範囲に使用する開発者や開発プロジェクトは多くありません。また、既存の PHP オブジェクト モデルは、C++ や C++ に比べて比較的弱いです。 Java の弱点により、この機能の使用も制限されます。ただし、PHP の将来のバージョンでは、言語のオブジェクト指向モデルに焦点が当てられ、既存のバージョンの多くの悪い機能が改善され、他の機能が追加される予定です。したがって、PHP の将来について説明する場合は、PHP のオブジェクト指向機能について説明することに重点を置きます。

さて、本題に取り掛かり、Zend Engine 2.0 の新機能を見てみましょう。

Zend Engine 2.0 設計図の概要 (草案)

設計図 (草案) から、次世代 Zend Engine が新しいオブジェクト指向モデルに基づいていることが明確にわかります。既存の PHP 4 のオブジェクト指向機能を使用したことがある場合は、Java または C++ を少し見つけると少しぎこちなく感じるかもしれません。オブジェクト指向構文がないだけでなく、予期しない結果が得られることもあります。結果 - これはすべて、PHP 4 をサポートする既存の Zend Engine 1.0 のオブジェクト指向モデルがあまり洗練されていないためです。

簡単に言うと、次世代の Zend Engine は Java に近づき、そのオブジェクト指向モデルを大幅に活用することになります。改善された機能の種類から判断すると、それは 3 つのカテゴリに分類されます。 1 つ目のカテゴリは、ビルダーとデストラクターの定義、プライベート メンバー変数と静的メンバー オブジェクトの追加を含む、既存のオブジェクト指向モデルの改良と強化です。変数、多重継承、オーバーロードなどの - 指向の機能、2 番目のカテゴリは、try/catch/throw 例外処理メカニズムの追加など、制御プロセスの変更、追加、削除です。文字列オフセットのインクリメント関数などの関数の削除。 (各タイプの改善の詳細については、参考資料に記載されているドキュメントを参照してください。) 1 番目と 2 番目のタイプの改善を通じて、PHP がオブジェクト指向プログラミング言語として徐々に改善されていることがわかります。

しかし、ここで問題が発生します:

良い面としては、今日のプログラミングの世界では、オブジェクト指向機能を備えた言語がより歓迎されています (言語自体がオブジェクト指向ベースで構築されていない場合でも、 Defined オブジェクトの追加などにより、言語がトレンドに乗り遅れることを防ぐことができます) - その意味では、Zend Engine 2.0 により、PHP のオブジェクト指向のサポートは、現在の暫定的なサポートから将来の完全なサポートに変更されるようです。さらに、エンタープライズレベルのアプリケーションを構築する場合 (これは現在、PHP がしばしば批判されています)、オブジェクト指向のモデリングと実装の使用が事実上の標準になっています。 PHP の改善により、このニーズに応え、この分野における言語自体の弱点に対処できる可能性があります。

マイナス面としては、より Java に近い PHP の新しいバージョンを開発者に提供することはほとんど意味がないようです。 PHP が広く使用されている理由は、オープン ソース コードとクロスプラットフォームに加えて、おそらく、インターネット Web サイト構築の単純かつ高速な Web プログラミングの特性に適応するための重要なポイントでもあります。非常に短い学習時間、フレンドリーな言語スタイル (特に C に精通している場合)、および多数の拡張クラス ライブラリ関数は、その言語の強力さを証明するのに十分ですが、そのような言語の次のバージョンが同様のオブジェクトに変換されると、多くの既存の開発者が短期間で挫折するだけでなく、新しい開発者を引き付ける上でも非常に悪影響を及ぼします。Java のような言語があるのに、なぜわざわざ PHP を学ぶ必要があるのでしょうか。

上記は私自身の「客観的」分析の一部です。いわゆる「客観的」とは、肯定的な側面について書くとき、否定的な側面について書くときは Zend Engine 2.0 の忠実な支持者であるように装っていることを意味します。その逆です(私の分析を読んで、かなり客観的に感じていただければ幸いです)。しかし、「客観的」は実際には私の「主観的」議論への道を開くだけです -

将来、PHP はどうなると予想されますか?

実際、問題の鍵は、PHP がどの方向に発展すると予想されるか、または PHP がどの分野に焦点を当てるかにあるかもしれません。

特に商用サポートがほとんどない状況で、PHP がこれほど人気が​​ある理由 (Zend は現在 PHP のサポートを提供していますが、その強みは Microsoft や Sun と比較すると本当に微々たるものです。) ASP と競争できるようになった、そしてプログラミングJSP が競合する言語は、JSP が完全に現実世界の高速 Web プログラミング環境を指向しているためです。この状況は、多くの PHP チュートリアルではっきりと見られます。いくつかの一般的な Web 関数を実装するには、PHP を使用すると、多くの場合、コードと複雑さが軽減されます。同時に、特定の分野のプログラミングでは、PHP には拡張モジュールの機能も利用できます。 (商用サポートはありませんが、PHP は多くのオープンソース ソフトウェアの支持者からサポートを受けています。彼らは PHP の生成と開発に貢献しただけでなく、さまざまな拡張モジュール機能も提供しました。)、非常に便利です。言い換えれば、開発者にとって、すぐに使える無料の関数ライブラリが増えれば、必要なのは関数マニュアルを参照して適切に使用することだけです。 PHP の競合製品は少し「衒学的」なようです。柔軟性が十分ではなく、厳密性が高いのかもしれません。おそらく、大手営利企業の製品はハッカーの傑作ほど使いやすくはありません。

しかし、実際の高速な Web プログラミング環境に適応するために、PHP は利便性と使いやすさを重視していくつかのことを放棄しました。たとえば、開発者独自のモジュール (非ソース コード レベル) の記述とカプセル化、オブジェクト指向機能 (既存のバージョンでは一部の機能が完全にサポートされていないだけ) など - PHP に欠けているものは、競合他社が持っているものです (たとえば、ASP は COM コンポーネントと通信でき、JSP は Java Beans を簡単に使用できます。JSP は誕生しました) Java (完全なオブジェクト指向言語など) の開発では、PHP はエンタープライズ アプリケーションを構築するための候補リストから除外されることがよくあります。

問題の核心は比較的明らかになりました - PHP の現在の開発は岐路に立っています。高速 Web プログラミング言語としての特性を最大限に発揮し続けるべきなのか、それとも、それ自体を改良して修正すべきなのか本格的なビジネス環境のニーズに適応するプログラミング言語でしょうか? 1

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446695.html技術記事いくつかの雑感は、まず第一に、この記事を書く本来の目的です。 Zend Engine 2.0 に関する設計図ドキュメントを入手してからしばらく経ちましたが、それを読んだ後、レビューを書きたくなったのです。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

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

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

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

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

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

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境