如何使用现有的php项目打开Zend Framework

时间:2010-09-08 11:49:25

标签: php zend-framework

我有一个应用程序,我想转换为Zend应用程序。我必须继续在zend中执行下一个任务,但是之前的页面应该在它们工作时起作用。现有的php项目是一个简单的php项目,目录结构非常简单,所有文件都在一个文件夹中。

我分别创建了一个zend项目(测试),并将所有现有的项目文件放在公共文件夹中。当使用 test.dev 时,我设置为指向 test / public 文件夹的本地主机。当我在浏览器中使用 test.dev 时,会调用现有项目的 index.php ,并显示现有项目的初始页面。现在我创建了一个控制器(人)和动作(索引)。现在,当我使用 test.dev/person/index 时,首先显示现有项目内容,然后在页面末尾显示 person / index (控制器/操作)内容所示。

我想如果在url中有控制器和操作,那么它应该只显示zend项目文件内容,当url中有文件时,它应该只显示该文件。

我的 test / public / index.php 文件目前就是这样。

<html>
   <head>
   </head>

   <body>
      This is existing project's index content.
   </body>
</html>

<?php
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

// Determine the protocol to use (http or https).
if (APPLICATION_ENV == 'production') {
    define('HTTP_PROT', 'https://');
} else {
    define('HTTP_PROT', 'http://');
}


/** Zend_Application */
require_once 'Zend/Application.php';  

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

?>

2 个答案:

答案 0 :(得分:1)

删除此

<html>
    <head>
    </head>

    <body>
        This is existing project's index content.
    </body>
</html>

来自/public/index.php文件。

如果您尝试访问/public/index//public/unknown/action/,则ZF将接管。这是因为不应该存在此文件结构。如果您尝试访问的文件夹在文件结构中不存在,那么ZF将接管并加载/public/index.php并启动您的ZF应用程序并尝试路由该请求。

如果该文件夹确实存在于旧网站,例如。 /public/contact/index.php然后应该为联系人文件夹加载脚本,并且不会启动ZF。

旧网站是CMS还是仅仅是静态HTML页面?

您能否准确地告诉我们您目前的设置情况以及为什么这不是您想要的?

答案 1 :(得分:1)