如何在我的旧PHP非集中式站点上集成Zend Framework?

时间:2009-09-07 17:03:15

标签: php zend-framework

我们正在Zend Framework中开发一个新站点,同时我们维护和改进旧版本(普通旧时尚PHP文件)。

在某些情况下,这意味着需要花费数小时的编程时间,我们可以将其用于新版本。

我们在Apache上有完整的服务器控制和复杂的301重写,因此我们可以根据需要重写o符号链接。我们的目标是能够将Zend包含在我们站点的子目录中,这样我们至少可以在任何PHP编程中使用它的库,甚至更好的是DB模型和尽可能多的代码可以在我们纯粹的ZF站点上重用当它结束时。

这值得麻烦吗?有人可以指出教程或最佳实践来做到这一点吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

完全有可能一次一个地编写基于ZF的页面以获得新功能,或者替换网站的旧部分。

您几乎可以根据需要编写新页面,但不是像往常一样通过index.php,您可以通过mod_rewrite将特定URL引导到新的基于zf的页面:

RewriteEngine on
RewriteBase /
# Not if there is a file or directory that matches
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d

# a new, clean URL can go to an old page
RewriteRule ^online /online_now.php

# other pages go to a ZF-frontcontroller, in zf.php
RewriteRule ^about/ /zf.php           [L]
RewriteRule ^account /zf.php          [L]
RewriteRule ^data /zf.php             [L]
RewriteRule ^faq /zf.php             [L]

答案 1 :(得分:1)

我们有一个相当模块化的网站,所以我们的策略是从Zend Framework开发新模块开始。我们已经非常使用.htaccess(实际上太多了)所以我们的最后一条规则只是重定向到Zend控制区域。

我们重新审视具有少量规律性的旧模块,因为我们需要以重要方式对它们进行重写,我们将重写它们。

最困难的部分,实际上并不是很难,确保我们所有会话信息在不同部分保持一致。

实际上,最困难的部分可能是确保界面有些一致。在系统的旧部分中有很多可怕的代码(其中有些内容已有10年历史),我们不得不在这里以小的方式打破Zend Framework约定,使其对用户透明。

这对我们来说非常实验性。我们在Zend Framework上实现了新系统,因此对它有一定的机构熟悉度,但无法说服自己重写遗留系统是值得的。我们处于早期阶段,但对此感到非常积极。