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

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

有帮助吗?

解决方案

我现在就告诉您,就快速应用程序开发 MVC 框架而言,Catalyst 迄今为止在 Perl 开发人员中享有最高声誉。

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

如果 Catalyst 不适合您,那么您可以基于轻量级框架进行构建 CGI::应用 以满足您的需求或查看一些鲜为人知的 MVC 框架,例如 页面套件五月柱.

其他提示

由于这个旧线程的出现,我将提到 Perl MVC 世界中两个令人兴奋的新增内容:

  • 舞蹈家 (CPAN),它深受 Ruby 的 Sinatra 影响,以非常轻量级而闻名
  • 莫乔利西斯 (CPAN)它是由 Catalyst 的原始开发人员使用他在那里学到的知识编写的,它没有非核心依赖项,具有非常现代的内置函数(HTML5/CSS3/Websockets、JSON/XML 解析器、它自己的 UserAgent/模板引擎)

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

除了已经提到的方法之外,另一个选择是连续性;然而,它(正如其名称所暗示的那样)是基于延续的,而不是典型意义上的 MVC。尽管如此,它仍然值得一提,因为它是更好的 Perl Web 框架之一。

也就是说,与任何替代品相比,我更喜欢 Catalyst。而且它还在一直变得更好!其缺点是,当前首选的编码方法继续以相当匆忙的速度发展 - 但对于最后几个版本,人们非常重视 API 兼容性,因此现在的负担主要是精神上的而不是管理上的。特别是即将到来的 Moose 内部移植有望提供一些出色的优势。

但在我看来,支持 Catalyst 的最大论据是链式调度类型。我在整个 web-framework-dom 中都没有见过类似的东西,它是一个最优秀的工具,可以让你的代码尽可能保持干燥。这与 Catalyst 提供的另一项伟大功能相结合,即 uri_for – 一个方法,它接受一个控制器和一堆参数,然后构造一个 URI,将分派到该位置并返回该位置。总之,这些工具意味着您可以以任何您认为正确的方式构建您的 URI 空间,同时可以构建您的控制器以避免逻辑重复, 使模板独立于 URI 结构。

这真是太棒了。

附议其他人的评论:Catalyst(或多或少是从 Maypole 分叉出来的)无疑是其中最完整、最强大的。乔纳森·洛克威(Jonathan Rockway)写的一本书肯定会帮助您掌握它。

除了“链式”调度类型之外,:Regex(和:LocalRegex)调度方法还提供了巨大的灵活性。我们在这里构建的最新应用程序仅通过少数使用 :LocalRegex 的子程序即可支持许多外观不同的 URL。

我还特别喜欢这样一个事实:您不限于特定的模板语言或数据库。邮件列表(和本书)都偏爱 Template::Toolkit(我也是如此)和 DBIx::Class(我们继续使用 Class::DBI),但您几乎可以使用任何您喜欢的东西。Catalyst 在这方面具有惊人的不可知性。

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

它的作用正如罐头上所说的那样。催化剂++

一直在玩 蹲着 在过去的几天里,我不得不说它看起来非常有前途并且使用起来很有趣。

它是一个微型网络框架(或网络微框架;-),并且深受以下因素的影响 野营 这是用 Ruby 编写的。

注意。蹲着(和露营)没有将模型组件嵌入到框架中。这是作者对模型的评论...... “楷模?整个世界都是你的模型。;-) 我对于在这里定义政策一直很矛盾。使用任何对你有用的东西”

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

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

如果您已经了解 Catalyst,那么我建议您重点关注它。它很成熟,文档齐全,并且拥有非常庞大的用户群、社区和插件集合。

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

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

维基百科在 http://jifty.org/ 是另一个具有有用位的资源。

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

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

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

我已经构建了一些应用程序 海带, ,它很容易学习并且非常有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top