Как включить Zend Framework с существующим php-проектом - PullRequest
2 голосов
/ 08 сентября 2010

У меня есть приложение, которое я хочу преобразовать в Zend Application. Я должен продолжить, выполняя следующие задачи в Zend, но предыдущие страницы должны работать так, как они работают. Существующий проект php - это простой проект php с очень простой структурой каталогов, и все файлы находятся в одной папке.

Я создал Zend-проект (тест) отдельно и поместил все существующие файлы проекта в общую папку. Я установил локальный хост, который указывает на папку test / public при использовании test.dev . Когда я использую test.dev в браузере, тогда вызывается index.php существующего проекта и отображается начальная страница существующего проекта. Теперь я создал контроллер (человек) и действие (индекс). Теперь, когда я использую test.dev / person / index , сначала отображается существующий контент проекта, а затем в конце страницы person / index (контроллер / действие).

Я хочу, если в URL есть контроллер и действие, тогда он должен показывать только содержимое файлов проекта Zend, а когда в URL есть файл, он должен просто показывать этот файл.

Файл

my 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 ]

1 голос
/ 09 сентября 2010

Я думаю, вы найдете это полезным http://www.chrisabernethy.com/zend-framework-legacy-scripts/

1 голос
/ 08 сентября 2010

Удалите это

<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-страницы?

Можете ли вы сказать намчто именно происходит с текущей настройкой, и почему это не то, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...