2009-09-07 61 views
3

我们正在Zend Framework中开发一个新的站点,同时我们维护和改进了我们的旧版本(普通的旧时尚PHP文件)。如何在我的旧PHP非集中式网站上集成Zend Framework?

这在某些情况下意味着要花费几个小时的编程,我们可以在一些扩展中使用我们的新版本。

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

这会值得一提吗?有人可以指出一个教程或最佳实践,为了做到这一点?

非常感谢。

回答

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

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

我们用少量的规律重新访问旧模块,因为我们需要以重要的方式重新修改它们,我们将重写它们。

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

其实,最难的部分可能是确保界面有点一致。在系统的旧部分中有太多可怕的代码(其中有些代码已经有10年了),我们不得不在这里或那些小的方面打破Zend Framework约定,以使其对用户透明。

这对我们来说是相当实验性的。我们在Zend Framework上实现了新的系统,因此对它有一定的体系熟悉度,但不能说服我们自己认为重写遗留系统是值得的。我们正处于早期阶段,但对此感到非常乐观。