假设您已完成扩展食谱3或4之类的操作。所以你有一些类似MyApp :: UseMyBase的类,你可以用来代替'使用Moose;'在你正常的使用Moose的代码中。但是在使用MooseX :: Declare?
时如何使用MyApp :: UseMyBase我可以看到MooseX :: Declare :: Syntax :: MooseSetup :: import_symbols_from()可能很有希望,但不知道如何更改其返回值并使用MooseX :: Declare并从MyApp :: UseMyBase导入而不是穆斯。
答案 0 :(得分:3)
如果这是你想要的,你必须继承MooseX::Declare::Syntax::Keyword::Class
,也可能是MooseX::Declare::Syntax::Keyword::Role
,并在那里自定义import_symbols_from
。
然后,您将MooseX::Declare
扩展为实际提供已修改的关键字。为此,您需要自定义keywords
方法。您可以使用自定义关键字的实例替换它返回的ClassKeyword和RoleKeyword实例,或者只是根据您是否要
use MyMooseX::Declare;
class Foo { ... } # the modified class keyword
或
use MyMooseX::Declare;
class Foo { ... } # the default class keyword
myclass Bar { ... } # the modified class keyword
CatalystX::Declare包含现有技术,但它也比你要求的要复杂得多。我不知道一个更简单的例子,但是我希望在你想要与世界其他地方分享你的解决方案时加入改进的文档