機能紹介: Linux 愛好家向けの Linux 技術記事、ニュース情報、コミュニケーション プラットフォームを提供します。厳選された最新の Linux 情報と技術記事を毎日配信します。Linux コマンド クエリ、Linux 情報検索、WeChat グループ コミュニケーションをサポートします。
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 のユニークなスキルは、何年にもわたって変化してきたにもかかわらず、依然として技術者以外の人にとって最も簡単に学習できる言語であるということです。PHP を使用すると、動的な Web サイトを他のテクノロジーよりも速く構築できます。 、手間をかけずにウェブサイトをホストすることもできます。 PHP は世界で最も優れた設計言語ではないかもしれませんが、物事を成し遂げることができることに疑いの余地はありません。
PHP5.0 (2004 年リリース) は、非常に実用的なオブジェクト モデルをもたらしました...待て、私が話しているのは 8 年前にリリースされたもののことです。 PHP の最新バージョンである PHP 5.4 は、現代の Web 言語で夢見ることしかできなかった機能を提供します。はい、PHP はネームスペースをサポートします。はい、PHP はクロージャをサポートします。はい、PHP はトレイトをサポートします。
少し時間はかかりますが、PHP5.4 は全体的なエクスペリエンスを以前よりも向上させるためにいくつかの構文を導入しています。はい、PHP は配列の定義に [ ] の使用をサポートしています。はい、PHP は次のような関数を呼び出す新しく作成されたオブジェクトをサポートしています (新しい Foo ())->bar(); はい、PHP は $foo->bar()[1] のような要素を取得するための配列をサポートしています。
PHP は自らの間違いからも学びました: register_globals と magic_quotes は完全に削除されました。
PHP にはローカル テストを容易にする Web サーバーが組み込まれており、マイクロ秒で開始できます。
次の課題: PHP を説明するインターネット上のチュートリアルをどのように更新できるでしょうか? PHP プログラムで WebSocket をサポートする最適なテクノロジは何ですか?
良い言語を持つことは良いことですが、良いエコシステムを持つことはさらに良いことです。 PHP エコシステムはここ数年で大きく進化しました。
Git
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 を使用) をテストしたいですか?
$composer.phar create-project symfony/framework-standard-edition
$ cd フレームワーク-標準版
$ ./app/console サーバー:run
Silex をテストしてみませんか?
$composer.phar create-project fabpot/silex-skeleton
$ cd サイレックススケルトン
$ php -S localhost:8888 -t web/
Composer をまだ知りませんか?それについては知っておくべきです。
メインの Composer リポジトリ Packagist を参照すると、すでに 1900 を超えるパッケージがあり、3 か月以内に何百万回もインストールされています。
次の課題: 次の PHP バージョンには Composer が組み込まれますか?
協力
コミュニティの協力がこの記事の焦点であり、私が最も誇りに思っていることです。 PHP プロジェクトでは、他のプロジェクトを無視できるほど大きなプロジェクトであっても、コラボレーションが改善され始めています。
phpBB、Drupal、ez Publish、Symfony、および他の多くのプロジェクト (phpDocumentor、PHPUnit、Behat、Zikula、Propel、Doctrine、Midgard など) がコードを共有しています。確かに、彼らはお互いに競争相手ですが、お互いに協力することが重要であることを理解しています。 Composer は、この種のコラボレーションを非常にうまく促進します。
次の課題は、より多くのプロジェクトにこのトレンドに参加するよう説得することです。
繰り返しますが、PHP は最高のプログラミング言語ではないかもしれません。その癖については私が最初に言いますが、PHP は断然最高の Web プラットフォームです。