我知道模型、视图和控制器是相互独立的,但是首先处理请求的控制器呢?
如果我要更改“部署服务器”(或),是否需要更改控制器代码myapp_cgi.pl
,或者它可以由配置文件等管理?myapp_fastcgi.pl
myapp_server.pl
This won't matter to you at all. Catalyst is based on PSGI so you can move it between different deployment environments really easily.
通常这无关紧要,除非您正在推动边缘并使用一些新的、半实验性的功能,例如 Web 套接字支持、非阻塞写入等。在这种情况下,您最终可能会得到特定于事件循环的逻辑您选择(尽管稍加努力,您应该能够将其隔离到外部代码,并保留您的控制器的东西(参见http://www.catalystframework.org/calendar/2013/14)
下一个稳定版本的催化剂将更好地支持流文件句柄内容,这也将取决于服务器选择(例如,twiggy 通过 AIO::IO 流文件句柄为您提供非阻塞流,而 Starman 不会这样做(虽然 Starman 会支持分块响应)。所以一般情况下它并不重要,但如果你正在推动边缘催化剂将根据底层服务器容量做不同的事情。所以如果你得到金属你可能会失去服务器不可知论。--jnap
如果您选择另一台支持 PSGI 的服务器进行部署,则无需更改控制器代码。
来自 Catalyst::Manual::Deployment:
Catalyst 应用程序最常部署为 FastCGI 或 mod_perl 应用程序(推荐使用 FastCGI 选项)。但是,由于 Catalyst 基于 PSGI 规范,因此任何实现该规范的 Web 处理程序都可用于运行 Catalyst 应用程序。
有关部署选项的更多信息,请阅读 man Catalyst::Manual::Deployment::*