16

你能为perl推荐一些好的MVC框架吗——我知道的一个是催化剂

需要能够在 perl 基础架构上公开服务,这些服务可以由 Java/.Net 应用程序无缝调用。

4

12 回答 12

21

现在我要告诉你,Catalyst 在 Perl 开发人员中在快速应用程序开发 MVC 框架方面享有盛誉。

就“纯”MVC 而言,我不确定是否有那么多“成熟”或至少可用于生产的替代方案。

如果 Catalyst 对您来说似乎不合适,那么您可以构建轻量级框架CGI::Application以满足您的需求,或者查看一些鲜为人知的 MVC 框架,例如PageKitMaypole

于 2008-09-05T09:41:31.060 回答
15

既然这个旧线程出现了,我将提到 Perl MVC 世界的两个令人兴奋的新添加:

  • Dancer ( CPAN ) 深受 Ruby 的 Sinatra 影响,以非常轻量级着称
  • Mojolicious ( CPAN ) 由 Catalyst 的原始开发人员编写,使用他在那里学到的知识,它没有非核心依赖项,具有非常现代的内置插件(HTML5/CSS3/Websockets、JSON/XML 解析器、它自己的 UserAgent/模板引擎)

(注意,我使用 Mojolicious 的次数超过了 Dancer,因此,如果我错过了我为 Mojolicious 列出的 Dancer 的某些功能,那么我提前道歉)

于 2012-06-17T15:14:47.213 回答
8

除了已经提到的之外,另一种选择是连续性。然而,它(顾名思义)是基于延续的,而不是典型意义上的 MVC。尽管如此,还是值得一提,因为它是更好的 Perl Web 框架之一。

也就是说,我比任何替代品都更喜欢 Catalyst。而且它一直在变好!不利的一面是,当前首选的编码方法继续以相当快的速度发展——但在最近的几个版本中,一直非常强调 API 兼容性,因此现在的负担主要是精神上的,而不是管理上的。特别是即将到来的 Moose 内部端口将提供一些极好的好处。

但是,IMO 支持 Catalyst 的最大理由是链式调度类型。我在所有 web-framework-dom 中都没有看到过类似的东西,它是一个非常好的工具,可以让你的代码尽可能 DRY。这与 Catalyst 提供的另一个很棒的东西很好地结合在一起,即uri_for- 一个方法,它接受一个控制器和一堆参数,然后构造一个将分派到那个地方的 URI,然后它返回。总之,这些设施意味着您可以以任何您认为正确的方式构建您的 URI 空间,但同时可以构建您的控制器以避免重复逻辑,保持模板独立于 URI 结构。

这真是太棒了。

于 2008-09-16T09:58:49.363 回答
5

附议其他人的评论:Catalyst(或多或少从 Maypole 分叉)是迄今为止最完整和最强大的。乔纳森·洛克威 (Jonathan Rockway) 写的一本书肯定会帮助你掌握它。

除了 'Chained' 调度类型,:Regex(和 :LocalRegex)调度方法提供了极大的灵活性。我们在这里构建的最新应用程序通过使用 :LocalRegex 的少数子程序支持许多看起来完全不同的 URL。

我还特别喜欢您不限于特定的模板语言或数据库这一事实。邮件列表(和书)都偏爱 Template::Toolkit(我也是)和 DBIx::Class(我们继续使用 Class::DBI),但您几乎可以使用任何您喜欢的东西。Catalyst 以这种方式奇妙地不可知论。

不要因为 Catalyst 似乎需要一半的 CPAN 作为依赖项而被推迟。一旦你启动并运行它,它就是一台运转良好的机器。它现在已经达到了成熟的程度,一旦你掌握它,你会发现它“消失在背景中”。您将时间花在解决业务需求上,而不是与您使用的工具作斗争。

它按照它在锡上说的做。催化剂++

于 2008-09-17T04:58:55.690 回答
5

过去几天一直在玩Squatting ,我不得不说它看起来很有前途并且使用起来很有趣。

它是一个微网络框架(或网络微框架;-),并且深受用 Ruby 编写的Camping的影响。

注意。Squatting (& Camping) 没有将模型组件烘焙到框架中。以下是作者对模型的评论…… “模型?整个世界都是你的模型。;-) 我一直对在这里定义政策持矛盾态度。使用适合你的任何东西”

于 2008-10-10T12:52:54.727 回答
4

还有 CGI::Application,它更像是一个框架的内脏。它可以帮助人们编写基本的 CGI 并将其粘贴到其上以使其成为他们喜欢的自定义。所以你可以让它几乎不使用任何模块,或者几乎所有的人。

于 2008-09-25T20:33:20.987 回答
2

催化剂是要走的路。还有 Jifty,但是(我上次查看时),它的文档很糟糕。

于 2008-09-05T12:37:12.133 回答
2

对于您的问题,我会研究一下 Jifty::Plugin::REST,它允许使用各种格式访问模型和操作。

我只想说 Jifty 没有糟糕的文档。然而,大部分包含的文档是 API 文档,但有一个非常低噪音的邮件列表,其中包含有用的提示和应用程序链接。

http://jifty.org/上的Wiki是另一个有用的资源。

如果您的目标是在下午制作视频商店(我最喜欢的 4GL 和 CRUD 框架的基准测试),那真的值得一看!

于 2008-09-12T15:17:43.780 回答
2

如果您已经了解 Catalyst,那么我建议您专注于它。它是成熟的、有据可查的,并且拥有非常庞大的用户群、社区和插件集合。

于 2008-09-15T20:12:11.177 回答
1

另一个选项是与 BigTop 模块结合使用的Gantry,它可以减少构建简单 CRUD 站点所需的时间。

于 2008-09-16T16:15:13.890 回答
1

还有Clearpress,我可以推荐它作为有用的数据库支持应用程序。它比 Catalyst 需要更少的依赖项。我们已经用它编写了一些大型应用程序,我使用它运行了一个羽毛球梯子网站。

于 2010-01-12T16:21:01.987 回答
0

我用Kelp构建了一些应用程序,它很容易学习并且很有帮助。

于 2014-03-14T22:00:10.570 回答