複雑な言語の簡単な紹介

PHP は 4 半世紀前のもので、最初の 20 年間は仕様書がありませんでした。 これは驚くべきことであり、おそらく、多くの開発者が理解を深めるのが少し難しかった理由を説明しているでしょう (ある批評家は、この言語を悪い設計のフラクタルと表現したことで有名です)。

それにもかかわらず、Web 開発で主に使用されている PHP は、開発者がそれに固執するのに十分魅力的であることが証明されました。 Softaculous には 450 以上の PHP ベースのアプリがリストされています。Softaculous は、多くの Web サイト ホスティング アカウントに付属するオープン ソースのインストーラーです。 WordPress、Drupal、Laravel などの優れた製品について聞いたことがあるかもしれません。

過去数十年にわたって、PHP も進化してきました。 実際、現在のイテレーションである 7.0 は、プログラミング言語が真に成熟した段階にあると言えます。 飛び込みましょう。

PHP の新機能

PHP 7.0 は 2015 年末に初めて登場しました。 ネイティブの Unicode サポートを提供する予定だった 6.x はリリースされませんでした (UTF-16 変換に関連するパフォーマンスの問題により、開発者の不足と共にプロジェクトが中止されたと報告されています)。 2019 年の初めまでに、正式にサポートされたのは 7.x バージョンだけでしたが、7 より前のバージョンがまだ使用されているに違いありません (たとえば、1 台のマシンで PHP 5.6.40 を実行しており、Debian が提供しているPHP 5.6 のサポートは 2020 年 6 月までです。)

バージョン 7.0 では、言語とその内部構造に多くの進歩が導入され、速度が大幅に向上しました (一部のベンチマークでは 100%)。 私は特に intdiv が好きです。これは、整数除算をより安全にし、null 合体演算子 ?? を備えています。 (C# のように)。 変数が存在するかどうかを確認するために多くの isset を使用することに慣れている場合、7.x では構文がクリーンアップされます (これは素晴らしいことです!)。 PHP 7.0 移行ガイドの例を次に示します。

$username = $_GET['user'] ?? 'nobody';  // new way
// Equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // old way

7.x の最も優れた機能は、戻り値の型宣言であり、7.1 ではそれら (およびパラメーター) を null 可能にすることでさらに強化されています。 これは、C# に非常によく似ており、次のような戻り型の型も同様です。

function arraysSum(array ...$arrays): array

必ず厳密な型の強制を使用してください (PHP 7.1 以降)。 この行をページの上部に配置するだけです:

?php declare(strict_types=1);?

開発者は、リリースを一貫した 3 年間のサポート期間に移行しました。 PHP 7.0 は 2018 年末にサポートが終了し、7.1 も今年の終わりにサポートが終了したと報告されています。

サポートパッケージ

PHP は、正式に PHP の一部である PEAR で数年間パッケージ サポートを享受しています。 そして 2012 年には、洗練された SAT 解決 (数学的手法) を使用して依存関係を管理するパッケージ マネージャーである Composer がリリースされました。 公式の Composer パッケージ Web サイト packagist.org には、ほぼ 25 万のパッケージ (および 167 万 8000 を超えるバージョン) があります。

これは少し話題から外れていますが、プログラミング言語に堅牢なリポジトリがある場合、多くの信頼性が得られると思います。 必要なものを無数のダウンロード Web サイトから検索するよりも確実に優れています。

欠点

PHP 5.x を使用している Web サイトを PHP 7.x に移行した場合、何かが壊れる可能性がかなりあります。 PHP を変更するだけで、それが実行されることを保証することはできません。 これが発生した場合は、何が欠けているかを確認するために、この小さなスクリプトを作成する価値があります。

 
?php
phpinfo();
? 

phpinfo() 関数は、700 行以上のテキストを出力します。これは、PHP インストールのモジュールと機能に関する大量の情報です。 ハッカーがサイトのハッキングをすぐに開始できるように、公開しないように注意してください。

また、ホスティング会社は、モジュールを見逃していたり​​、ウェブサイトが壊れていたことに気付いていないことがあります。 私自身の Web サイトでは、PHP を .HTML ファイルで実行する機能を使用していましたが、プロバイダー (staymommy など) が不注意で機能を壊してしまったため、PHP を実行する代わりに、それを一覧表示しました。

結論

PHP には大きな利点が 1 つあります。それは、すべての Linux システムに付属しており、Windows Web サーバーでも実行できることです。 これは、Web 構築のエコシステムにしばらく留まる可能性が高いことを意味します (現在、TIOBE インデックスでも 8 位にランクされており、開発者の関心が高いことを示しています)。

Netcraft の毎月の Web 調査によると、この言語のプレゼンスは、主に Nginx Web サーバー (29%)、Apache (29%)、および Microsoft (19%) に分かれています。 よく引用される「全サイトの 80% が PHP を実行している」という数値が正確かどうかはわかりませんでしたが、少し調べてみると、79% (W3Techs) という数値が見つかりました。 それはかなり大きいです!

残りのほとんどは、PHP の主要な代替手段である ASP.NET MVC を実行する IIS サーバーである可能性があります。 他にもいくつかありますが、最終的には 2 頭の競走です。

PHP は、C# を利用した ASP.NET よりも簡単に習得できます。 そうは言っても、おそらく両者の実行時間には大きな違いはありません。 MySQL データベースからのデータのプルを含め、PHP ページの時間を計測しましたが、通常、ページの生成には 1 ~ 2 ミリ秒かかります。 これは、ブラウザでページをダウンロードしてレンダリングするのにかかる数秒とは比べ物になりません。

私は数年前に PHP プログラミングから離れていましたが、今はまたやりたくなりました。

Leave a Comment

Your email address will not be published. Required fields are marked *