【问题标题】:Referencing a custom composer package in Slim PHP在 Slim PHP 中引用自定义 composer 包
【发布时间】:2014-05-02 13:07:47
【问题描述】:

我正在尝试弄清楚如何使用 composer 引用自定义类

我的 composer.json 文件如下所示:

{
    "name": "adtools_api",
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "qz/adtools_middleware",
                "version": "dev-master",
                "source": {
                    "url": "repo-name",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],
   "require": {
       "slim/slim": "2.*",
       "qz/adtools_middleware": "src/"
   }
}

文件夹结构如下:

app
    routes
    vendor
        composer
        qz
            adtools_middleware
                src
                    hello-world.php
        slim
    composer.json
    index.php

我正在尝试引用如下所示的 hello-world.php 文件:

<?php

namespace HelloWorld;

class SayHello
{
    public static function world()
    {
        return 'Hello World, Composer!';
    }
}

?>

在 index.php 文件中,我尝试像这样引用该类:

$hello = new HelloWorld\SayHello();

但收到一条错误消息,告诉我“致命错误:在...中找不到类 'HelloWorld\SayHello'”

如果有人能指出我正确的方向,那就太好了!谢谢!

【问题讨论】:

    标签: php class namespaces composer-php slim


    【解决方案1】:

    您能否检查vendor 文件夹中的autoload 并查看您的HelloWorld 命名空间是否已加载?

    如果没有,您可能需要将autoload 属性添加到您的composer.json 文件中,像这样

    {
      "autoload": {
        "psr-0": {"HelloWorld": "qz/adtools_middleware/src/"}
    },
    

    在您的项目中加载 HelloWorld 命名空间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-09
      • 2012-11-01
      • 1970-01-01
      • 2016-07-25
      • 2014-05-24
      • 2014-08-14
      • 2012-11-03
      • 1970-01-01
      相关资源
      最近更新 更多