Zend Framework和Drupal在同一个域上

时间:2009-06-29 18:42:03

标签: zend-framework drupal configuration

我有一个用Zend Framework编写的小应用程序,我希望将其嵌入到Drupal Page中。 这两个应用程序(ZF和Drupal)都位于同一个域中。

但根据我的知识,ZF需要安装在服务器的根目录中,我已经有了Drupal。我担心的是,ZF控制器会将Drupal页面请求误认为是糟糕的控制器请求。

可以有一个简单的解决方案来防止这种冲突吗? 可能更容易为限制较少的框架重写应用程序,但我需要检查我已经权衡了所有选项。

提前感谢,因为StackOverflow已被证明是一个非常有用的资源,我计划分配一些时间来帮助我的专业领域的人

4 个答案:

答案 0 :(得分:3)

请注意,已存在Zend Framework integration module for Drupal。使用它通常会处理路径问题。

答案 1 :(得分:1)

我已经将特定的URL运行到基于ZF的系统,并允许其余的URL回退到index.php。这是自定义代码,而不是Drupal安装,但我看不出它会有什么不同。

以下是我使用.htaccess文件的方式:

### Zend Framework for main site, the rest fallback to /index.php
RewriteEngine on
RewriteBase /
# Not if there is a file or directory that matches
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d

RewriteRule ^register /?mod=register&    [QSA,L]
# ... and other rewrite aliases to index.php

# Alternates that redirect
RewriteRule ^friend/(.*) /friends/$1  [R=301,L]
RewriteRule ^members$ /member/        [R=301,L]

# These URLs are handled by ZF
RewriteRule ^member(.*)$ /zf.php      [L]
RewriteRule ^friends /zf.php          [L]
RewriteRule ^about/ /zf.php           [L]
RewriteRule ^faq /zf.php              [L]

正如您应该看到的,Zend Framework引导程序位于/zf.php中,而不是通常的/index.php

答案 2 :(得分:0)

Drupal很乐意生活在一个目录中,它并不坚持成为root用户。我根本不太了解Zend。

如果你想将它们安装到网络服务器的根目录,我想你将不得不做一些自定义编码。我可能会在Drupal的index.php中查看并添加一些将404发送给Zend而不是让Drupal处理它们的代码。实际上,可能有一种方法可以在Apache级别使用某种mod_rewrite或mod_proxy魔法。

答案 3 :(得分:-5)

这可能对您没有特别的帮助。但有什么特别需要你的Zend。 Drupal本身就是一个非常好的框架。我猜想试图让两个并肩工作会比它的价值更大,因为它非常不标准。