ホームページ バックエンド開発 PHPチュートリアル PHP7 を見据えて: PHP_PHP チュートリアルで変更する必要があるもの

PHP7 を見据えて: PHP_PHP チュートリアルで変更する必要があるもの

Jul 20, 2016 am 10:57 AM
php php7 一般的に 使用 意味 展望 変化 はい ほとんど ほとんど 知る プログラマー プログラミング言語 必要

プログラマーは (一般に) 優れたプログラミング言語を、自分が最もよく知っている言語、または最も頻繁に使用する言語と定義します。私は PHP プログラマー、ジョンは JavaScript プログラマー、DHH は Ruby プログラマー、Schwartz と Randall は Perl プログラマーです。 プログラマーによって問題の見方は異なりますが、総合的に最良とみなされるプログラマーは常に 1 つまたは 2 つあります。

PHP 開発者として、PHP が軽視されているのを聞くたびに心が痛みます。

Web アプリケーションの言語として PHP を使用する必要がありますが、これは悪い言語であり、その使用を必要以上に推奨したりサポートしたりすべきではありません。

おっと、私が毎日使っている言語が悪い評価をされていると聞くと、自分が選んだ言語について、自分が同意していれば他人の評価は気にしなくていい、と言う人もいるかもしれません。本当にそうすべきではないと思います。この発言が意味するのは、言語と開発者がひどいだけでなく、私たち PHP 開発者もひどいということです。

それでは、他人の大きな口を封じるために具体的に何をすべきでしょうか? PHP 言語を尊重できるようになるのでしょうか? これを実現できるいくつかの側面を分析してみましょう。

1. すべてを壊す

PHP7 はすべてを壊します。 PHP 開発者は、バージョン間の下位互換性を破壊するという法則を受け入れる必要があります。広範な下位互換性が許可されない限り、PHP7 は非常に尊敬される言語となるでしょう。

1. 特定のコア言語を作成します

すべてのライブラリ メソッドを削除し、オブジェクト セット内のコア メソッドを保持します。 外部ライブラリや拡張機能を使用せずに、基本的な入出力、文字列処理、および数学のための優れた完全な言語を作成できる PHP7 を作成できるはずです。ライブラリ外の拡張は承認される必要があります。

2. すべてをオブジェクトとして扱います

Ruby、Smalltalk、および (主に) Java からオブジェクトを取得し、それをすべてオブジェクトとして扱います。 整数はオブジェクトであり、文字列はオブジェクトであり、それぞれに操作可能なメソッドがあります。Ruby と Smalltalk がオブジェクト間でメッセージを渡す必要があり、オブジェクト メソッドを呼び出すことが最善であるという概念が PHP には必要ないと思います。

3. 一貫した名前のメソッドとクラス

PHP に関する最大の不満の 1 つは、(needle,haystack) または (haystack, neede) または some_function() または function_some() を常にチェックしなければならないことです。 someFunction() を使用するには、一貫した形式を開発する必要があります。

4. 厳密にしてください

float 文字列をメソッドに渡してみませんか? これは警告です。

5. すべてが Unicode です

PHP6 のすべての文字列が Unicode であることは良いことであり、私は PHP7 も維持されるべきだと主張します。

6. 中心的な起動ポイント

すべてのコード実行の起点となるメインクラスまたは初期化を作成します。

7. C コードをクリーンアップする

私は C の専門家ではありませんが、PHP の C コードよりも Ruby の C コードについて詳しく知っていれば、PHP と Ruby の内部を簡単に理解できます。 私は PHP に精通しているので、独自の拡張機能を作成する方が簡単です。

8. eval() を取り除く

eval() は悪です。 これを使用している場合、これは間違った考えです。これにより PHPUnit が壊れます。今後は破棄してください。

9. 演算子のオーバーロードをサポート

すべてがオブジェクトであるため、開発者はオブジェクトを操作するメソッドを習得するだけで済みます。

10. 許可されるメソッド シグネチャ

真のメソッド シグネチャを許可するため、プログラマは異なるパラメータ リストまたは戻り値の型を持つ同じ名前のメソッドを持つことができます。

<ol class="dp-c">
<li class="alt"><span><span class="keyword">class</span><span> A {   </span></span></li>
<li>
<span class="keyword">public</span><span> int </span><span class="keyword">function</span><span> doSomething(int </span><span class="vars">$a</span><span>, float </span><span class="vars">$b</span><span>) {   </span>
</li>
<li class="alt">
<span class="comment">// Same as $a->*($b->to_int());  </span><span> </span>
</li>
<li>
<span>int </span><span class="vars">$c</span><span> = </span><span class="vars">$a</span><span> * </span><span class="vars">$b</span><span>->to_int();   </span>
</li>
<li class="alt">
<span class="keyword">return</span><span> </span><span class="vars">$c</span><span>;   </span>
</li>
<li><span>}   </span></li>
<li class="alt">
<span class="keyword">public</span><span> float </span><span class="keyword">function</span><span> doSomething(int </span><span class="vars">$a</span><span>, float </span><span class="vars">$b</span><span>, float </span><span class="vars">$c</span><span>) {   </span>
</li>
<li>
<span class="comment">// Same as calling $a->*($b->*($c)); since * is a method on each object $a and $b.  </span><span> </span>
</li>
<li class="alt">
<span>float </span><span class="vars">$d</span><span> = </span><span class="vars">$a</span><span> * </span><span class="vars">$b</span><span> * </span><span class="vars">$c</span><span>;   </span>
</li>
<li>
<span class="keyword">return</span><span> </span><span class="vars">$d</span><span>;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span>}  </span></li>
</ol>
ログイン後にコピー

11. PHP 仮想マシン (PVM) を構築する

私は言語設計者ではないので、これが可能かどうかは完全にはわかりませんが、PHP 仮想マシンがあればいいでしょう。 PHP バイトコードを実行でき、明示的なヒープとスタックが可能です。

12. コピーオンライト (COW) の削除

COW は非常に馴染みのない概念であり、その存在を知らないと、新しい開発者にとって問題が発生する可能性があります。

13. PHP 公式リリース仕様

W3C HTML5 仕様と同様に、PHP 仕様では、開発者が独自のバージョンの PHP を実装し、コンパイルする特定のサンプルが存在することを保証します。

2. 言語を尊重する

私たちは言語を尊重するよう努めるべきです。 私たちは、非常に強力な機能を備えた PHP7 を開発する開発者を募集するために最善を尽くすべきです。 私たちは巨大なコードを安全かつ読みやすくし、新しい開発者に正しい方法でプログラミングすることを教える必要があります。

Ruby の狂気については知りませんが、Ruby 言語を尊敬しています。 私は Ruby on Rails の威力を認めていますし、Ruby on Rails は非常に優れたフレームワークだと考えていますが、私の好みではありません。評判の良い開発者からの認知や尊敬を得ることができれば、PHP はさらに進化するでしょう。

3. 開発者を尊重する

上記の理解から、私たちは非常に尊敬される PHP 開発コアチームを必要としています。 彼らはコードをリリースし、講演し、物事の「正しい方法」を人々に示し、このチームはすぐに多くの開発者の尊敬を得るでしょう。

結論

PHP の将来に興奮しています。 私のアイデアが実現されるかどうかは非常に疑わしいですが、社会全体に役立つと心から信じています。 世界第 2 位の Web サイトが、PHP による素晴らしいコミュニティの構築を支援していると発表したとき、私はとても興奮しました。 PHP は消えることはなく、改良に努め続ける限り、いつかは PHP が開発者から一般的に尊敬される言語になるでしょう。

最後に、私は言語デザイナーではありません。 私のアイデアはまったくナンセンスだと思われるかもしれません。 私のどこかが間違っている場合は、丁寧にお知らせください。喜んでお話しします。 PHP が高く評価され、強力で高速かつ効率的な言語になるよう、協力していきましょう。コンパイルにエラーがある場合は、修正してください。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445773.html技術記事プログラマーは (一般に) 優れたプログラミング言語を、自分が最もよく知っている言語、または最も頻繁に使用する言語と定義します。私は PHP プログラマー、ジョンは JavaScript プログラマー、DHH は Ruby プログラマー、シュワは...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles