PHP の組み込み関数のすべて (または大部分) をよりオブジェクト指向のクラス階層にグループ化しようとするプロジェクトが存在するかどうか、ただ興味があります。たとえば、すべての文字列関数を単一の String クラスにグループ化するなどです。
すべての組み込み関数は引き続きグローバル名前空間でアクセスできるため、(PHP ソース コード レベルで変更が行われない限り) これで実際に問題が解決されるわけではありませんが、使いやすさは確実に大幅に向上します。
何度も何度も。PHP に OO 機能があることを発見するとすぐに、すべてをクラスにラップしたくなるでしょう。
PHP の OO のポイントは、ソリューションを好きなように設計できるようにすることです。しかし、オブジェクトで既存の関数をラップしても、あまり成果は得られません。
そうは言っても、PHP のコアはすでにかなりオブジェクト指向です。SPLを見てください。
PHPが前進するためには、このようなことが不可欠だと思います。主に .Net プログラマーである私は、100 万個と 1 個のグローバル関数を使用して PHP を操作するのは苦痛だと感じています。PHP 5.3 に名前空間があるのは良いことですが、独自のライブラリがオブジェクト指向でさえない場合、ましてや名前空間を採用していない場合は、あまり役に立ちません。言語としての PHP はあまり気にしませんが、その API はひどくまとまりがなく、おそらく完全なオーバーホールが必要です。VBがVB.NetになったときにVBが経験したことのようなものです。
同意しません。オブジェクト指向プログラミングは、本質的に手続き型プログラミングよりも優れているわけではありません。ポリモーフィックな動作 (継承、メソッドのオーバーライドなど) が必要でない限り、オブジェクト指向を使用しないでください。オブジェクトをコードの単純なコンテナーとして使用しても、オーバーヘッドに見合う価値はありません。これは特に文字列に当てはまります。文字列は非常に頻繁に使用されるためです (配列キーなど)。すべてのアプリケーションは通常、いくつかのポリモーフィック機能の恩恵を受けることができますが、通常は高レベルです。String クラスを拡張したいと思うことはありますか?
また、PHP の奇妙な関数命名を理解するには、少し歴史が必要です。PHP は標準 C ライブラリと POSIX 標準に基づいており、多くの同じ関数名 (strstr、getcwd、ldap_open など) を使用しています。これは、言語バインディング コードの量を最小限に抑え、十分に考え抜かれた一連の機能 (C で実行できることと PHP で実行できるほぼすべての機能) を保証し、これらのシステム ライブラリが高度に最適化されている (たとえば、 strchr は通常インライン化されているため、約 10 倍高速になります)。
あなたの質問に答えるには、はい、あなたが話していることを正確に行うライブラリがいくつか存在します。どちらを使用するかは、まったく別の問題です。PHPClasses と pear.org は、そのようなライブラリを探し始めるのに適した場所です。
更新: 他の人が示唆しているように、SPL は優れたライブラリであり、組み込みの php 関数の多くをラップしています。ただし、ラップされない php 関数がまだたくさんあります。銀の弾丸なしで私たちを置き去りにします。
Cakephp や Zend (その他のものも) などのフレームワークを使用する際に、これらの問題のいくつかを、独自のライブラリを組み込み、DB 接続などの基本をフレームワークに組み込むことで解決しようとしていることに気付きました。したがって、フレームワークは別のソリューションになる可能性があります