php - ZF2 中的寄存器库

标签 php zend-framework2

我的目录结构如下

app/
 config/
 data/
 libraries/
  Erfurt/
 /module
 /public
 /vendor

我想使用爱尔福特图书馆。 Erfurt 不使用命名空间,而是使用供应商下划线类命名约定,例如。 G。 Erfurt_App 类

我在网上找到了不同的答案,但没有任何帮助。这是我测试过的:

app/module/module.php

public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
            'prefixes' => array(
                'Erfurt' =>  __DIR__ . '/../libraries/Erfurt/',
            ),
        ),

    );
}

如果我尝试使用 Erfurt 类,PHP 无法找到它。

$erfurt = \Erfurt_App::getInstance();

上面写着

Fatal error: Class 'Erfurt_App' not found in (...)\app\module\Application\src\Application\Controller\ApplicationController.php on line 24

将爱尔福特图书馆包含在我的应用程序中的正确方法是什么?

最佳答案

根据 @Xerkus 评论,它是如何工作的:

  1. 移动了Erfurt目录从 app/libraries/Erfurtapp/vendor/Erfurt
  2. 另外,Erfurt 需要较旧的 Zend 版本,因此我还提取了 ontowiki-0.9.6-21.7z/ontowiki-0.9.6-21/libraries/Zend 进入app/libraries/Zend
  3. 将类映射添加到app/composer.json:

"autoload":{ "classmap": ["vendor/Erfurt", "vendor/Zend"] }, 4. 因为 Erfurt 通过 require_once 'Zend/Version.php'; 包含 Zend 类我还需要将包含路径添加到 app/composer.json:

"include-path": ["vendor"]

现在我可以使用爱尔福特:

$erfurt = \Erfurt_App::getInstance();

最后app/composer.json看起来像:

{
    "name": "zendframework/skeleton-application",
    "description": "Skeleton Application for ZF2",
    "license": "BSD-3-Clause",
    "keywords": [
        "framework",
        "zf2"
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.3.*",
        "cpliakas/git-wrapper": "~1.0"
    },
    "autoload":{
        "classmap": ["vendor/Erfurt", "vendor/Zend"]
    },
    "include-path": ["vendor"]
}

关于php - ZF2 中的寄存器库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057023/

相关文章:

forms - 如何在 Zend Framework 2 中使用自定义表单 View 助手?

php - 清算资源

php - 如何在不依赖javascript的情况下决定用户的时区

php - preg_match php 匹配 javascript

php - zf2 session 验证失败

php - 如何设置 Eclipse PDT 遵循 Zend Framework 2 编码约定?

zend-framework2 - zend框架2教程AbstractTableGateway

php - 从一组不同的表创建事件流。

php - Laravel:按名称从路由获取 URL

doctrine-orm - Zend Framework 2 中服务中的实体管理器