PHP については多くの不満がありますが、そのような不満も多くの賢明な人々から来ています。 Jeff Atwood が PHP について文句を言う別の記事を書いた後、私は PHP の良い点について考えました。
これらの苦情の最大の問題は、古いバージョンの PHP をまだ使用している多くの人々からの苦情であることです。彼らは、PHP が言語レベルとコミュニティ レベルの両方で急速に進化していることを気にしたくない、または認めたくないのかもしれません。実際、他のどの言語や Web プラットフォームよりも速く進化しています。いつもそうだったわけではありませんが、PHP は過去 5 年間にわたって素晴らしい歩みを続けてきました。
PHP コミュニティの最近の驚くべき成果について話す前に、いくつかの興味深い数字を見てみましょう: PHP は、サーバーサイド プログラミング言語が知られている Web サイトの 77.9% で使用されています。 WordPress は世界中の Web サイトの 16.6% で使用されています。使用率が最も高い 3 つの CMS ウェブサイト構築システムは、WordPress のシェアが 54.3%、Joomla のシェアが 9.2%、Drupal のシェアが 6.8% です。 3 つの製品はすべて PHP で書かれています。
PHPはちゃんとやっているはずですよね?
さて、PHP のユニークなスキルは、何年にもわたって変化してきたにもかかわらず、依然として技術者以外の人にとって最も簡単に学習できる言語であるということです。これを使用すると、他のテクノロジよりも速く動的な Web サイトを構築できます。ウェブサイトを手間のかからないものにします。 PHP は世界で最も優れた設計言語ではないかもしれませんが、PHP が物事を成し遂げることには疑いの余地がありません。
PHP 5.0 (2004 年リリース) は、非常に実用的なオブジェクト モデルをもたらしました...待て、8 年前にリリースされたもののことを話しています。 PHP の最新バージョンである PHP 5.4 は、現代の Web 言語で夢見ることしかできなかった機能を提供します。はい、PHP はネームスペースをサポートします。はい、PHP はクロージャをサポートします。はい、PHP はトレイトをサポートします。
時間はかかりますが、PHP5.4 では、全体的なエクスペリエンスを以前よりも向上させるために、いくつかの構文が導入されています。はい、PHP は配列の定義に [ ] の使用をサポートしています。はい、PHP は次のような関数を呼び出す新規作成オブジェクトをサポートしています: ( new Foo( ))->bar(); はい、PHP は $foo->bar()[1] のような要素を取得するための配列をサポートしています。
PHP は自らの間違いからも学びました: register_globals と magic_quotes は完全に削除されました。
PHP にはローカルテストを容易にする Web サーバーが組み込まれており、マイクロ秒の速度で起動できます。
次の課題: PHP を説明するインターネット上のチュートリアルをどのように更新するか? PHP プログラムで WebSocket をサポートする最適なテクノロジは何ですか?
良い言語を持つことは良いことですが、良いエコシステムを持つことはさらに良いことです。 PHP エコシステムはここ数年で大きく進化しました。
Git についてはあまり話したくありません。Git はどこでも使用されており、PHP はすぐに Git を採用しました。 PHP 自体を含め、ほぼすべての PHP ライブラリ、フレームワーク、製品は Git を使用します。
2 年前、私は symfony 1 でハッキングした醜い PEAR コードを削除して、プラグインを使用したいと考えていました。 PEAR のようなモノリシック インストールではなく、プロジェクトの依存関係を管理できるものに置き換えたかったので、ソフトウェアの依存関係を管理するための最適なアルゴリズムを見つけようとしました。 Perl から Ruby、Debian から Redhat まで、可能な限りすべてのことを試してきました。どの結果にも私は満足できませんでした。たまたま私自身の解決策がうまくいっただけです。もちろん、これは単なる私の経験です。それからZYppに出会って、それで終わりでした。 ZYpp は、ブール充足可能性問題解決を使用して依存関係を管理します。 Nils Adermann と Jordi Boggiano の熱心な努力のおかげで、PHP には依存関係を管理する優れたツール Composer が組み込まれました。
はい、PHPには他の言語よりも優れた依存関係管理ツールがあります。
Git、Composer、PHP の組み込み Web サーバーのおかげで、PHP プロジェクトのダウンロード/テスト/インストールが簡単になりました。
Symfony (PHP5.4 を使用) をテストしたいですか?
1 2 3 |
$ composer.phar create-project symfony/framework-standard-edition
$ cd framework-standard-edition
$ ./app/console server:run
|
Silex をテストしてみませんか?
1 2 3 |
$ composer.phar create-project fabpot/silex-skeleton
$ cd silex-skeleton
$ php -S localhost:8888 -t web/
|
Composerをまだ知りませんか?それについては知っておくべきです。
メインの Composer リポジトリ Packagist を参照すると、すでに 1900 を超えるパッケージがあり、それらは 3 か月以内に何百万回もインストールされています。
次の課題: Composer を次の PHP バージョンに組み込みますか?
コミュニティの協力がこの記事の焦点であり、私が最も誇りに思っていることでもあります。 PHP プロジェクトでは、他のプロジェクトを無視できるほど大きなプロジェクトであっても、コラボレーションが改善され始めています。
phpBB、Drupal、ez Publish、Symfony、および他の多くのプロジェクト (phpDocumentor、PHPUnit、Behat、Zikula、Propel、Doctrine、Midgard など) がコードを共有しています。確かに、彼らはお互いに競争相手ですが、お互いに協力することが重要であることを理解しています。 Composer は、この種のコラボレーションを非常にうまく促進します。
次の課題は、より多くのプロジェクトにこのトレンドに参加するよう説得することです。
繰り返しますが、PHP は最高のプログラミング言語ではないかもしれません。その癖については私が最初に指摘しますが、PHP は断然最高の Web プラットフォームです。
翻訳元: PHP はあなたが思っているよりもはるかに優れています