Catalyst调度程序(不使用它们)

时间:2016-05-15 12:56:16

标签: perl catalyst

我们的网站是用普通的Perl编写的(我们的代码库相当大)。

我们要重构它。

Catalyst使用"方法调度程序" (比如":Path")。但我们的网站上写着大量的自定义书面调度员。

我的问题:如果我们切换到Catalyst,我们能否使用我们的自定义方法调度程序,而不是以Catalyst方式重写所有内容? (可能稍后切换到Catalyst方式("逐步"))

那么,我们的大型网站是否值得用Catalyst重构它?

我是Perl的长期程序员,但是催化剂新手。

1 个答案:

答案 0 :(得分:1)

我在一个网站上工作,其中部分内容是Catalyst,以及许多CGI脚本和mod_perl处理程序。我们没有使用Plack(该项目是在Plack推出之前启动的)。我们使用Apache部署了所有代码(CGI,mod_perl处理程序和Catalyst)。第一级调度是在Apache httpd的配置中使用Location指令完成的,其中请求将由CGI,mod_perl或Catalyst根据其URL进行处理。

例如,要运行CGI脚本:

ScriptAlias "/cgi-bin/" "/home/httpd/cgi-bin/"

最重要的是,为匹配" / myapp"的网址运行Catalyst:

<Location /myapp>
    SetHandler          modperl
    PerlResponseHandler MyApp
</Location>

有点过于简单了。请查看http://search.cpan.org/~ether/Catalyst-Manual-5.9009/lib/Catalyst/Manual/Deployment/Apache/mod_perl.pod,因为这是我们部署应用程序的Catalyst部分的方式。

只是为了给你一些细节。当我们已经有很多与你的情况有点类似的代码时引入了Catalyst。由于时间限制,我们不想重写Catalyst中的所有内容。

回答你的问题: 是的,您可以切换到Catalyst(甚至是递增的),并且仍然可以使用现有的自定义方法调度程序。