我已经从Moose回到php开发我真的很怀念像PHP对象模型这样的CLOS。是否有某种语法糖可以让我在处理对象时在php中编写更少的代码?只是想多强调一下这个要求。我不想在几个地方写一件事。我可以接受自动生成的部分代码,但在我必须开发的代码中,我不想看到冗余信息,这些信息只是杂乱无章(想想:如果你真的需要更多类比的话,想想LISP宏)。因此,如果更有意义的话,这部分也可以称为DSL。我希望至少有角色(mixins),以及某种内省(introspection)而不需要重新发明weel。代码生成器和自动加载器可能是至少部分解决此问题的一种方法。附注对于JavaScript,有Joose,所
在当前页面(http://landoflisp.com)上阅读Lisp,我在单击链接CLOSGUILD时显示的页面倒数第二段中发现了以下语句:Theimportantthingtonoteabouttheexampleisthatinordertofigureoutwhichmixmethodtocallinagivensituation,theCLOSneedstotakeintoaccountbothoftheobjectspassedintothemethod.Itisdispatchingtoaspecificimplementationofthemethodbasedonth
对于这个抽象的问题,我回到了我的CLOS(CommonLisp对象系统)时代。我正在增加问题以澄清:在我看来,Python装饰器有点像CLOS中的“around”方法。据我所知,CLOS中的“around”方法是一个方法/函数,它环绕同名的主要方法/函数。它也向上和向下遍历子类。这是一些语法(我刚拿起我的书)。所有这些方法这将在一个类中:(defmethodhelloworld()(formatt"HelloWorld"))也可以有before和after方法(为了完整起见,我将其放入):(defmethodhelloworld:before()(formatt"I'mexecutin