4

Mooseから php 開発に戻りましたが、phpの CLOS のようなオブジェクト モデルが本当に恋しいです。オブジェクトを扱うときに PHP でより少ないコードを書くことを可能にするある種のシンタックス シュガーはありますか?

この要件をもう少し強調します。一つのことを複数の場所に書きたくない。コードの一部が自動的に生成されても問題はありませんが、開発するために見なければならないコードの中で、雑然とした冗長な情報を見たくありません (本当にもっと類推が必要な場合は、LISP マクロを考えてください)。したがって、この部分がより理にかなっている場合は、DSL と呼ぶこともできます。

私は、少なくともロール(ミックスイン) と、再発明することなくある種の内省をしたいと思っています。コード ジェネレーターとオートローダーは、この問題の少なくとも一部を解決する 1 つの方法かもしれません。

ps JavaScript にはJooseがあるので、同様の API は非常に便利です。

4

3 に答える 3

2

php にはまだミックスインはありませんが、ほぼ同じように機能するトレイトの RFC があります。http://wiki.php.net/rfc/traits

__call のオーバーロードを使用すると、メソッドを他のクラスにディスパッチして、ミックスインのように見せることができます。

于 2008-10-03T06:33:12.300 に答える
1

Symfonyプロジェクトにはミックスインのメカニズムがあり、CLOSのようなアスペクト指向プログラミングが可能です。個人的には、ユーザーランドスペースでのこの種のハッキングは好きではありません(少なくともPHPではそうではありません)。言語が提供する機能を使用したほうがよいと思います。おそらく、特性のようなものが(おそらく)言語に浸透するのを待つでしょう。

于 2008-10-03T09:30:13.740 に答える
0

PHPでロールを実装する新しいプロジェクトhttp://github.com/huberry/phubyもあります。

于 2010-01-17T21:36:08.237 に答える