【问题标题】:How to switch on Zend Framework with existing php project如何使用现有的 php 项目打开 Zend Framework
【发布时间】:2010-09-08 11:49:24
【问题描述】:

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

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

我想如果 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();

?>

【问题讨论】:

    标签: php zend-framework


    【解决方案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 页面?

    您能否准确地告诉我们您当前的设置发生了什么?为什么这不是您想要的?

    【讨论】:

    • 现有项目是简单的 php 页面,带有一些 javascript 工作。问题是现有项目和 ZF 项目都需要公用文件夹中的 index.php 文件才能启动。因此,我将两个项目的 index.php 代码放在公共的单个 index.php 中。
    • 首先我认为我应该将现有项目index.php 内容放入新的home.php 文件中,但随后我必须使用test.dev/home.php 而不是test.dev
    • 现有项目的index.php 文件中有什么内容?当然不只是你粘贴的简单 HTML,我说要删除?
    • 现有index.php文件是html+php+javascript的组合。大到贴在这里。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 2014-08-10
      • 2016-12-18
      相关资源
      最近更新 更多