PHP はもはや 10 年前のものではありません
開発者の Brent は、2019 年の PHP がどのようなものであるかを詳しく説明した記事を公開しました。
Brent 氏は、多くのコア関数のメソッド署名が依然として一貫性がなく、構成設定が依然として混乱しているなど、PHP にはまだいくつかの問題があることを認めましたが、彼自身の記事では開発経験の観点から、彼は Web 開発には PHP が最適であると信じています。PHP を使用すると、信頼性が高く保守しやすい高品質のアプリケーションを作成でき、彼自身も顧客も最終結果に満足しています。 (推奨される調査: PHP7 テクノロジ トピック )
記事の中で、Brent は長年にわたる PHP の開発の良い側面に焦点を当てており、いくつかの点を通して「PHP は10 年前はひどい言語ではありませんでした ”:
#● PHP は活発に開発されており、毎年新しいバージョンがリリースされます● PHP 5 以降、パフォーマンスは常に向上しています改善● フレームワーク、パッケージ、プラットフォームで構成される非常にアクティブな言語エコシステムがあります#● PHP は継続的に開発されており、ここ数年で多くの新機能が追加されました
● これまでにさまざまな開発ツールが開発されてきました 数年かけて成熟し、成長を続けています
PHP の開発は活発に行われており、毎年新しいバージョンがリリースされます#現在の PHP バージョンは昨年 12 月にリリースされた 7.3 ですが、7.4 は今年末にリリースされる予定で、PHP 8.0 は 7.4 の次のバージョンになります。
5.X 時代以来、コア チームは毎年新しいバージョンをリリースしたいと考えており、過去 4 年間、そのようなリリース サイクルを維持することに成功しました。通常、各新しいバージョンは 2 年間正式にアクティブにサポートされ、その後 1 年間はセキュリティ修正のみが提供されます。これは、PHP 開発者が可能な限り最新の状態を保つよう奨励することを目的としています。
より具体的なリリースおよびメンテナンス サイクルについては、PHP 公式 Web サイトの概要をご覧ください:
https://www.php .net/supported-versions.php
上の表を見ると、バージョン番号が 5 から 7 に跳ね上がっていることがわかります。それでは、PHP 6 はどこに行ったのでしょうか?
ところで、ポピュラーサイエンスの話をしてみましょう。実際、2005 年には PHP コミュニティが PHP 6 を開始しました。しかし、Unicode の実装が困難だったため、プロジェクトは最終的に中止されました。PHP 関係者は PHP 6 GA をリリースせず、2010 年に PHP 6 をキャンセルしました。 PHP 6 プロジェクトは中止されましたが、実装された機能の多くは PHP 5 に統合されました。 PHP 6 はキャンセルされましたが、このメジャー バージョンの以前の開発は PHP 6 という名前で行われていたため、多くの参考資料や書籍ではこのバージョンを指すために「PHP 6」を使用しています。関係者は、PHP 6 を放棄した後にこれが混乱を引き起こすのではないかと心配したため、単に PHP 6.X のバージョン番号を使用せず、5 から 7 に直接ジャンプしました。 詳細については、公式の手順を確認してください:https://wiki.php.net/rfc/php6
#PHP 7.0 では、PHP のコア部分が完全に書き直され、最新の Zend エンジンが導入され、PHP のパフォーマンスが 2 ~ 3 倍向上しました。
著者はこの点を説明するために https://kinsta.com/blog/php-benchmarks のベンチマーク テストを引用し、7.0 以降、PHP のパフォーマンスが向上し、PHP Web アプリケーションと Web フレームワークのパフォーマンスが向上していることを指摘しました。他の言語では、パフォーマンスが一部のケースよりもはるかに優れています。しかし彼はまた、「もちろん、PHP フレームワークは C や Rust よりも優れているわけではありませんが、Rails や Django よりははるかに優れており、ExpressJS に匹敵します。」非常にアクティブなフレームワークがあります。 、パッケージ、およびプラットフォーム 言語の生態系
PHP フレームワークに関して言えば、WordPress について言及する必要がありますが、著者は、WordPress は現在の PHP 生態系を明らかに表していないと述べています。もはや WordPress だけです。」
現在、PHP には 2 つの主要な Web アプリケーション開発フレームワーク (Symfony と Laravel、Zend、Yii、Cake、Code Igniter) があり、さらに多くの小さなフレームワークもあります。 Symfony と Laravel には、管理パネルと CRM、独立したソフトウェア パッケージ、CI、アナライザー、Web ソケット サーバー、キュー マネージャー、支払い統合などを含む、巨大なパッケージとソフトウェア エコシステムがあります。 さらに、近年では PHP 非同期フレームワークも登場しており、その中でも Swoole、Amp、ReactPHP が最適であり、真の非同期 PHP を実行するために PHP またはその他の言語で書かれたフレームワークとサーバーです。著者は、PHP エコシステムの現在の状態を測定する 1 つの方法は、メインの PHP パッケージ リポジトリである Packagist からのデータを調べることだと考えています。次の傾向グラフを見ると、ソフトウェア パッケージの数が急激に増加しており、現在登録されているソフトウェア パッケージ数は 223,217、インストール総数は 14,827,204,847 に達しており、PHP エコシステムは以前ほど弱くはありません。
async と await という 2 つの非常に要望の高い機能ですが、しかし、近年では PHP の新機能が次々と登場し、言語自体もさまざまな面で改良されています。
以下に、多くの注目を集めている新しい PHP 機能の一部を示します。
● ショート クロージャショート クロージャ、別名:アロー関数 。これは、PHP で短い関数を記述する方法です。クロージャは、array_map や array_filter などの関数に渡すと非常に便利です。
// A collection of Post objects $posts = [/* … */]; $ids = array_map(fn($post) => $post->id, $posts);
Null 合体演算子。三項演算子に似ていますが、左側のオペランドは単にブール値を使用するのではなく、isset のように動作します。 。このため、この演算子は配列に対して特に便利です。また、変数が設定されていない場合には、デフォルト値が割り当てられます。
$undefined ?? 'fallback'; // 'fallback' $unassigned; $unassigned ?? 'fallback'; // 'fallback' $assigned = 'foo'; $assigned ?? 'fallback'; // 'foo' '' ?? 'fallback'; // '' 'foo' ?? 'fallback'; // 'foo' '0' ?? 'fallback'; // '0' 0 ?? 'fallback'; // 0 false ?? 'fallback'; // false
Trait は、単一継承の制限の一部を軽減できるコードを再利用するためのメカニズムです。特性とクラスを組み合わせるセマンティクスは、複雑さを軽減し、多重継承とミックスインに関連する典型的な問題を回避する方法を定義します。
トレイトはクラスに似ていますが、きめ細かく一貫した方法で関数をグループ化するためにのみ使用されます。これは従来の継承を補足するものであり、動作の水平結合を実現できます。クラス メンバー アプリケーションは必要ありません継承。
<?php trait ezcReflectionReturnInfo { function getReturnType() { /*1*/ } function getReturnDescription() { /*2*/ } } class ezcReflectionMethod extends ReflectionMethod { use ezcReflectionReturnInfo; /* ... */ } class ezcReflectionFunction extends ReflectionFunction { use ezcReflectionReturnInfo; /* ... */ } ?>
#型付きプロパティ、クラス変数は、次のような型を定義できます。
class A { public string $name; public Foo $foo; }
Expand 演算子。これは、呼び出し内でパラメーターを直接解凍できる新しい構文です。たとえば、
call_user_func_array([$db, 'query'], array_merge(array($query), $params));
配列 $params は、新しい構文を使用して直接展開できます:
$db->query($query, ...$params);
#JIT は、コードを中間状態として表現し、実行時にそれを中間状態に変換するコンパイラー戦略です。アーキテクチャに依存するマシンコードに変換され、オンザフライで実行されます。 PHP では、これは、JIT が Zend VM によって生成された命令を中間表現として扱い、アーキテクチャに依存するマシン コードで実行することを意味します。つまり、コードをホストするのはもはや Zend VM ではなく、基盤となる CPU です。
外部関数インターフェイス。純粋なスクリプト言語から C 関数を呼び出し、C データ型を使用できるため、「システム」コードをより効率的に開発できます。 。 PHP の場合、FFI は純粋な PHP を使用して PHP 拡張機能を作成し、C ライブラリにバインドする方法を開きます。 #● 匿名クラス
単純な 1 回限りのオブジェクトを作成するための匿名クラス:<?php // Pre PHP 7 code class Logger { public function log($msg) { echo $msg; } } $util->setLogger(new Logger()); // PHP 7+ code $util->setLogger(new class { public function log($msg) { echo $msg; } });
戻り値の型の宣言:
<?php function sum($a, $b): float { return $a + $b; } // Note that a float will be returned. var_dump(sum(1, 2)); ?>
Strict モード: <?php
declare(strict_types=1);
function sum($a, $b): int {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>
Libsodium をコア拡張機能にします。Libsodium は最新の拡張機能です。サイドチャネルの脆弱性を回避するためにセキュリティ専門家によって慎重に選択された暗号化アルゴリズムで構成される暗号化ライブラリ。
##● ジェネレーター
ジェネレーターは、反復子を実装するための単純でボイラープレートのない方法を提供します。 ここ数年でさまざまな開発ツールが成熟し、成長を続けている最後に著者は、現在のPHP開発ツールも成熟し、成長を続けていると分析しました。
彼は例として、Psalm、Phan、PHPStan などの静的アナライザーを使用しました。これらのツールは、PHP コードを静的に分析し、あらゆるタイプのエラーやバグの可能性を報告します。これらが提供する機能はある程度 TypeScript の機能に匹敵しますが、現在 PHP はトランスパイルを提供していないため、カスタム構文は許可されません。これは、PHP 開発がドキュメントに依存する必要があることを意味しますが、実際、PHP の作成者であるラスムス レルドルフ氏は、コアに静的解析エンジンを追加するというアイデアについて言及したことがあります。受到 JavaScript 社区的启发,目前 PHP 也有在进行转换的相关研发,比如项目 Pre,它允许新的 PHP 语法转换为普通的 PHP 代码。虽然这个想法已经在 JavaScript 中被证明可行,但作者认为在 PHP 中,只有先提供了适当的 IDE 和静态分析支持,它才有可能实现。
讲完了 PHP 当前的这些变化,作者最后没有以“PHP 是世界上最好的语言”作结语,相反,他是这样说的:
All that being said, feel free to still think of PHP as a crappy language... I can say in confidence that I enjoy working with it.
话虽如此,但是还要继续认为 PHP 是蹩脚的语言那也是可以的。我可以很自信地说我喜欢 PHP。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

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

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。