Zend - 无法加载Zend / Application.php(无法打开流)?

时间:2013-05-22 08:43:13

标签: php windows zend-framework frameworks

我的结构如下(我使用的是Zend 1.9.6):

http://farm3.static.flickr.com/2605/4112306785_fc80d39833_o.gif
(我真的很抱歉。我的声誉不够。)

当我运行程序时,出现错误:

*警告:require_once(Zend / Application.php):无法打开流:第25行的C:\ xampp \ htdocs \ myzend \ index.php中没有此类文件或目录 致命错误:require_once():在C中打开所需的'Zend / Application.php'(include_path ='; C:\ xampp / application / modules / admin / models;。; C:\ xampp \ php \ PEAR')失败:第25行的xampp \ htdocs \ myzend \ index.php

这是我的index.php

<?php
   date_default_timezone_set('Asia/Ho_Chi_Minh');

   // Define base path obtainable throughout the whole application
    defined('BASE_PATH')
        || define('BASE_PATH', realpath(dirname(__FILE__) . '/../..'));


    // Define path to application directory
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', BASE_PATH . '/application');

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

   set_include_path(implode(PATH_SEPARATOR, array(
       realpath(APPLICATION_PATH . '/library'),
       APPLICATION_PATH . '/modules/admin/models' ,
       get_include_path(),
   )));


   /** 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();

这是我的application.ini

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

resources.frontController.defaultModule = "Default"
resources.frontController.defaultControllerName = "Index"
resources.frontController.defaultAction ="index"

resources.modules = ""

resources.layout.layout = "layout"
resources.layout.layoutpath = APPLICATION_PATH "/layouts"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

我在互联网上多次搜索但没有找到任何帮助。请帮我!非常感谢。这是我第一次使用Zend。

http://www.mediafire.com/download/rni7f3af3n214kx/myzend.rar

1 个答案:

答案 0 :(得分:0)

错误意味着PHP无法找到您尝试要求的文件Zend/Application.php。按照惯例,您的library文件夹中有Zend Framework的副本,所以这个文件应位于library/Zend/Application.php

您的index.php将库文件夹添加到包含路径,这是告诉PHP在包含文件时查看此文件夹的内容。但是我不认为你输入的路径是正确的,这可能是错误的原因。你有:

set_include_path(implode(PATH_SEPARATOR, array(
   realpath(APPLICATION_PATH . '/library'),
   APPLICATION_PATH . '/modules/admin/models' ,
   get_include_path(),
)));

但这应该是:

set_include_path(implode(PATH_SEPARATOR, array(
   realpath(APPLICATION_PATH . '/../library'),
   APPLICATION_PATH . '/modules/admin/models' ,
   get_include_path(),
)));

编辑:您的ZF项目档案为我提供了两个小修补程序:

  • 我在application / configs中修改了application.ini的文件名(这是拼写错误 - 可能只是你的rar档案中的一个问题)。
  • 我将application.ini中的defaultModuleDefault更改为default

然后为我加载页面。我没有收到您在问题中报告的Zend / Application.php错误。