ホームページ  >  記事  >  バックエンド開発  >  ZendEngine2.0_PHPチュートリアルの設計図からPHPの未来を見る

ZendEngine2.0_PHPチュートリアルの設計図からPHPの未来を見る

WBOY
WBOYオリジナル
2016-07-13 17:30:32730ブラウズ


雑話
まず、この記事を書いた当初の意図。 Zend Engine 2.0 に関する設計図ドキュメントを入手してからしばらく経ちました (参考資料のアドレスからダウンロードして参照することもできます)。それを読んだ後、レビューを書きたくなったのです。ドキュメントへ 次世代の PHP (現在の主流の開発言語として) は、既存のオブジェクト指向開発習慣により沿った言語となり、少なくともより多くのオブジェクト指向機能が備わった言語になります。しかし、それに伴う疑問は、(現在の主流の開発言語としての) php のような言語 は、迅速な Web 開発を当初の目標としており、包括的なものになるようにそれ自体を修正する価値があるかどうかということです。この問題については、いくつかのレビュー記事で議論する必要があると思われるので、私自身の意見を述べてみたいと思います。しかし、色々なことがあり、その衝動が少しずつお腹に戻ってきて、最近になって初めて思い出したので、設計図の資料を何度も読み返して、この記事を思いつきました。 (最初にこの英語の文書を入手したとき、私はこの設計図文書を中国語に翻訳する予定でしたが、第一に、これは最終的な設計図ではないこと、第二に、全員が原文を直接読む習慣を身につける必要があること、第三に、翻訳は常に不明確になるため、当面はあきらめます。ただし、この記事を書いたとき、私はそれを「危険を冒して」翻訳することにしました。もしあれば、お気軽に修正してください。意味を正確に伝えることができません) 2番目がこの記事の焦点です。このレビューでは、主に将来のphp
で強化されるオブジェクト指向の機能についてコメントします。現在主流の開発言語)
。あなたが php (現​​在の主流の開発言語として) の開発者であれば、php (現​​在の主流の開発言語として) 言語のオブジェクト指向機能のいくつかを知っているはずです。一般的なphp(現在主流の開発言語として)は、「超高速開発環境」(これは私が作った造語で、構築期間が非常に短く、工期が非常に短いという特徴を持つ一部の顧客志向のWebサイト開発の状況を示しています)で使用されます。顧客の要件があまり明確ではないため、そのオブジェクト機能を実際に活用している開発者や開発プロジェクトがあまり多くありません。また、既存の php (現​​在の主流の開発言語として) オブジェクト モデルの弱点もあります。 C++ および Java への移行も、この機能の使用を制限します。ただし、php(現在の主流の開発言語として)の将来のバージョンでは、言語のオブジェクト指向モデルに焦点が当てられ、既存のバージョンの多くの悪い機能が改善され、他の機能が追加されます。したがって、php(現在の主流の開発言語として)の将来について議論することは、php(現在の主流の開発言語として)のオブジェクト指向機能について議論することに重点が置かれています。 それでは本題に入り、Zend Engine 2.0の新機能を見ていきましょう。


Zend Engine 2.0設計青写真(草案)の概要
設計青写真(草案)から、次世代Zend Engineが新しいオブジェクト指向モデルに基づいていることが明確にわかります。既存の PHP (現在の主流の開発言語として)
4 のオブジェクト指向機能を使用したことがある場合は、オブジェクト指向構文だけでなく、Java や C++ を少しだけぎこちなく感じるかもしれません。不足しており、場合によっては予期せぬ結果が得られることもあります - これはすべて、php (現​​在の主流の開発言語として) をサポートする既存の Zend Engine 1.0 のオブジェクト指向モデルがエレガントではないためです 4 が原因です。 簡単に言えば、次世代の Zend Engine は Java に近づき、そのオブジェクト指向モデルを大いに活用することになります。改善された機能の種類から判断すると、それは 3 つのカテゴリに分類されます。 1 つ目のカテゴリは、ビルダーとデストラクターの定義、プライベート メンバー変数と静的メンバー オブジェクトの追加を含む、既存のオブジェクト指向モデルの改良と強化です。変数、多重継承、オーバーロードなどの - 指向の機能、2 番目のカテゴリは、try/catch/throw 例外処理メカニズムの追加など、制御プロセスの変更、追加、削除です。文字列オフセットのインクリメント関数などの関数の削除。 (各改善の詳細については、参考資料に記載されているドキュメントを参照してください。) 第 1 種と第 2 種の改善を通じて、(現在主流の開発言語である) php

が徐々に改善されていることがわかります。それ自体をオブジェクト指向の特性を持つ言語に変換します。

しかし、まさにここで問題が発生します:
良い面としては、今日のプログラミングの世界では、オブジェクト指向機能を備えた言語の方が歓迎されています (たとえ言語自体がオブジェクト指向ベースで構築されていないとしても、言語がトレンドに乗り遅れることを防ぐために、定義されたオブジェクトの追加やその他の手段を通じて引き続き使用できます) - この意味で、Zend Engine 2.0 は (現在の主流の開発言語として) php を今後オブジェクト指向にサポートします。将来的には、暫定的な連絡先から完全なサポートへの移行は、エンタープライズレベルのアプリケーションを構築する際のプログラミング言語開発の傾向により一致すると思われます (これは、(現在の主流の開発言語としての) PHP でもあります)。現在、しばしば批判されています) 当時、モデリングと実装にオブジェクト指向手法を使用することは事実上の標準となっており、php(現在の主流の開発言語)のこの改良は、このニーズに応え、問題を解決する可能性があります。この点では言語自体の弱点があります。 マイナス面としては、Java に近い新しいバージョンの php
(現​​在の主流の開発言語として) を開発者に提供することは、ほとんど意味がないようです。 php(現在主流の開発言語)が広く使われている理由は、ソースコードの公開やクロスプラットフォームに加えて、インターネットWebサイト構築のシンプルで高速なWebプログラミングの特性に適応するための重要な点もおそらく重要です。非常に短い学習時間、フレンドリーな言語スタイル (特に C に精通している場合)、および多数の拡張クラス ライブラリ関数は、その言語の強力さを証明するのに十分ですが、そのような言語の次のバージョンが同様のオブジェクトに変換されると、多くの既存の開発者が短期間で挫折するだけでなく、新しい開発者を惹きつけるのにも非常に悪影響を及ぼします。Java のような言語があるのに、なぜわざわざ PHP を学ぶ必要があるのでしょうか (現在の主流の開発言語として) ?

http://www.bkjia.com/PHPjc/509142.html

tru​​ehttp://www.bkjia.com/PHPjc/509142.html技術記事いくつかの雑感は、まず第一に、この記事を書く本来の目的です。久しぶりに Zend Engine 2.0 の設計図ドキュメントを入手しました (現在は参考資料のアドレスからもダウンロードできます...
)
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。