【问题标题】:Zend OSX, and a "." added to context pathZend OSX 和一个“。”添加到上下文路径
【发布时间】:2011-07-10 19:03:47
【问题描述】:

我将最新版本的 Zend Framework 下载并解压到 OSX (10.6) 上(我也在使用 XAMPP 运行网络服务器,但我在 XAMPP 和 OSX 路径中添加了 include_path 更改,但这都是命令行,所以我不认为php 编译器正在使用 XAMPP 安装)

我尝试创建一个项目并获得以下信息:(请注意,出于隐私目的,我将部分路径替换为“----”)

sh-3.2# zf 创建项目 测试项目

致命错误:未捕获的异常 带有消息“Zend/Tool/Project/Context/Zf/./AbstractClassFile.php”的“Zend_Exception”或类“Zend_Tool_Project_Context_Zf_._AbstractClassFile”不存在在 /Volumes/----/----/z/library/Zend/Loader.php:99 中的文件中找到堆栈跟踪:

0 /Volumes/----/----/z/library/Zend/Tool/Project/Context/Repository.php(88): Zend_Loader::loadClass('Zend_Tool_Proje...')

1 /Volumes/----/----/z/library/Zend/Tool/Project/Context/Repository.php(79): Zend_Tool_Project_Context_Repository->addContextClass('Zend_Tool_Proje...')

2 /Volumes/----/----/z/library/Zend/Tool/Project/Provider/Abstract.php(87): Zend_Tool_Project_Context_Repository->addContextsFromDirectory('/Volumes/----/...', 'Zend_Tool_Proje...')

3 /Volumes/----/----/z/library/Zend/Tool/Framework/Provider/Repository.php(187): Zend_Tool_Project_Provider_Abstract->initialize()

4 /Volumes/----/----/z/library/Zend/Tool/Framework/Client/Abstract.php(128): Zend_Tool_F 在 /Volumes/----/----/z/library/Zend/Loader.php 在第 99 行 sh-3.2#

注意“Context_Zf_”之后的句号

我已经把它缩小到这个代码块:

文件:/Volumes/----/----/z/library/Zend/Tool/Project/Provider/Abstract.php

public function initialize()
{
    // initialize the ZF Contexts (only once per php request)
    if (!self::$_isInitialized) {

        // load all base contexts ONCE
        $contextRegistry = Zend_Tool_Project_Context_Repository::getInstance();
        $contextRegistry->addContextsFromDirectory(
            dirname(dirname(__FILE__)) . '/Context/Zf/', 'Zend_Tool_Project_Context_Zf_'
        );
        $contextRegistry->addContextsFromDirectory(
            dirname(dirname(__FILE__)) . '/Context/Filesystem/', 'Zend_Tool_Project_Context_Filesystem_'
        );
        // determine if there are project specfic providers ONCE

特别是“dirname(dirname(FILE))”正在回显为“.”

如果我用 'if (dirname(dirname(__FILE))!=".") { ... }' 包装块,那么我不会收到该错误,但会收到另一个错误:

sh-3.2# zf 创建项目 testProject

发生错误
注册表中不存在名称为 applicationDirectory 的上下文。

Zend Framework 命令行控制台 工具 v1.11.3 操作细节 “创建”和提供者“项目”
项目 zf create project path name-of-profile file-of-profile

【问题讨论】:

    标签: macos zend-framework xampp zend-tool


    【解决方案1】:

    我在我的 Mac 上进行了测试,它运行良好。您是否尝试过重新启动 xampp 服务器,我真的不知道它是如何工作的,因为我使用 Apache 和 PHP 已经安装的版本而不是“AMP 包”。可能是php.ini include_path 没有重新加载的问题。

    这显然是路径的问题,因为它没有成功构建类名:

    "Zend/Tool/Project/Context/Zf/./AbstractClassFile.php"
    

    点不应出现在此处。 你能分享来自终端的PATH 变量和来自你的php.ini 的include_path

    【讨论】:

    • 奇怪的是,我找不到要更改的正确 php.ini 文件。我现在已经改变了其中的 5 个,没有任何变化。我正在运行 XAMPP,但正在使用终端运行 zf 命令。 '哪个 php' 和 'php -i | grep php.ini' 都显示了我的 XAMPP 安装之外的内容。我认为现在最好的选择是杀死 xampp 并尝试为 Zend 服务器本地安装。
    【解决方案2】:

    遗憾的是,解决方案是安装 zend 服务器社区版,并让我为我处理一切。对于 OSX 上走这条路的其他人,请查看:http://cmorrell.com/webdev/installing-zend-server-zend-framework-on-os-x-291

    包括启用 CLI 支持的步骤。

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多