未找到composer-testing创建的包-类



我正在尝试使用本教程中的composer创建Hello world包

http://grossi.io/2013/creating-your-first-composer-packagist-package/

不知怎的,我在半天前就成功地创建了它并进行了测试,但现在在不同的目录中我又尝试了几次——无法使它工作,也不明白为什么我会出现错误,稍后会显示。

我是这样做的:

在HelloWorld目录中,我创建了src目录。在src目录中,我放入文件SayHello.php

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

运行

composer init

在它创建了composer.json文件后,我进行了编辑,最后它是这样的:

{
    "name": "vagrant/hello-world",
    "description": "test",
    "license": "no",
    "authors": [
        {
            "name": "darius",
            "email": "darius@darius.lt"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-0": {
            "HelloWorld": "src/"
        }
    }
}

然后我运行

composer install

我得到输出:

Loading composer repositories with package information
Installing dependencies (including require-dev)
Nothing to install or update
Generating autoload files

教程说

Composer安装在根目录中创建一个目录"tests"。

但我没有看到这样的目录,所以我自己在HelloWorld目录中创建了它。也许作者遗漏了添加内容。

然后我创建文件test.php

require_once __DIR__ . '/../vendor/autoload.php'; // Autoload files using Composer autoload
use HelloWorldSayHello;
echo SayHello::world();

运行:

php tests/test.php

获得:

PHP致命错误:在第7行上的/home/warrant/package_dev/workbench/oitlabs/HelloWorld/tests/test.PHP中找不到类"HelloWorld\SayHello">

它现在怎么能看到它?我试着加载测试.php

require_once __DIR__ . '/../src/SayHello.php';

然后它会看到并工作,所以这意味着它应该看到文件。所以它有点像composer生成错误的自动加载文件之类的。如何调试?

在我第一次成功的目录附近的另一个目录中也尝试了相同的步骤,只是使用了名称空间Hello。同样的错误。

这也是文件-我的包看起来如何,composer生成了什么:http://www58.zippyshare.com/v/Hsfg4pVf/file.html

问题是-我需要在src目录中有目录"HelloWorld"。

所以文件夹结构看起来是这样的:

Root
  src
      HelloWorld
            SayHello.php
  tests
      test.php
  vendor
  composer.json

相关内容

  • 没有找到相关文章

最新更新