几个Zend框架项目位于同一个根文件夹中

时间:2009-03-21 20:01:57

标签: php zend-framework directory

Zend Framework项目结构假定您每个服务器只运行一个应用程序,例如 localhost / guessbook,其中控制器和东西位于该级别之上的一个文件夹中。

如何在我的localhost中有一些不同的基于ZF的项目,以便像使用常规php脚本应用程序一样解决它们 - 使用localhost / app1,localhost / app2?

理想情况下,我想没有DocumentRoot,我想立即使用浏览器在应用程序之间切换。

3 个答案:

答案 0 :(得分:2)

我不清楚明白这是什么问题?也许您指的是发送到/index.php的典型重写规则?好吧,你可以从

改变重写规则
RewriteRule ^.*$ /index.php [NC,L]

RewriteRule ^/app1/.*$ /app1/index.php [NC,L]
RewriteRule ^/app2/.*$ /app2/index.php [NC,L]

在bootstrap.php中,您可以定义所有包含路径,因此可以共享Zend Framework库。

答案 1 :(得分:1)

我认为你错了。您可以在同一主机名上拥有多个zend框架应用程序。即我一直在我的服务器上使用多个magento的安装来试试。据我所知,Zend没有固定的文件结构(我选择框架的原因之一)

您甚至可以将Zend Library放在webroot文件夹之外,并使用以下内容调用它:

$lib = realpath(dirname(basename(__FILE__)) . '/../../../lib');
set_include_path(get_include_path() . PATH_SEPARATOR . $lib);


$rootDir = dirname(dirname(__FILE__));
        define('ROOT_DIR', $rootDir);

        set_include_path(get_include_path()
            . PATH_SEPARATOR . ROOT_DIR . '/library/'
            . PATH_SEPARATOR . ROOT_DIR . '/app/models/'
        );

        include 'Zend/Loader.php';
        spl_autoload_register(array('Zend_Loader', 'autoload'));

        // Load configuration
        Zend_Registry::set('configSection', $configSection);
        $config = new Zend_Config(new Zend_Config_Ini(ROOT_DIR.'/application/config.ini', $configSection));
        Zend_Registry::set('config', $config);

答案 2 :(得分:1)

你可以通过将Zend Library与你的多个项目共享来实现这一点,这个Url会告诉你如何做到这一点

http://www.mauriciocuenca.com/blog/2009/03/two-or-more-zend-framework-projects-on-a-shared-host/

除了在wamp中,您可以配置Vhost以创建多个本地域:

http://mikebernat.com/blog/Adding_Virtual_Hosts_to_Apache_&_Wampserver