4

我从Moose回到了 php 开发,我真的很想念 CLOS,比如 php 的对象模型。是否有某种语法糖可以让我在处理对象时在 php中编写更少的代码?

只是为了更加强调这一要求。我不想在几个地方写一件事。我可以忍受自动生成的部分代码,但是在我必须看到开发的代码中,我不想看到只是混乱的冗余信息(想想:如果你真的需要更多类比的话:LISP 宏)。因此,如果这更有意义的话,这部分也可以称为 DSL。

我希望至少有一些角色(mixins),以及某种内省,而无需重新发明轮毂。代码生成器和自动加载器可能是至少部分解决此问题的一种方法。

ps 对于 JavaScript,有Joose,所以类似的 API 会非常有用。

4

3 回答 3

2

php 中还没有 mixins,但是有一个 RFC 用于特性的工作大致相同。http://wiki.php.net/rfc/traits

对 __call 使用重载可以让您将方法分派给其他类并让它看起来像一个 mixin。

于 2008-10-03T06:33:12.300 回答
1

Symfony 项目有一个 mixins 机制,允许像 CLOS 中那样面向方面的编程。就个人而言,我不喜欢用户空间空间中的这种黑客行为(至少不使用 PHP)。我认为您最好使用该语言提供的功能,并且也许等待诸如特征之类的东西(也许)进入该语言。

于 2008-10-03T09:30:13.740 回答
0

还有一个新项目http://github.com/huberry/phuby在 php 中实现角色!

于 2010-01-17T21:36:08.237 回答