【问题标题】:laravel building a packagelaravel 构建一个包
【发布时间】:2016-10-21 03:25:27
【问题描述】:

试图为票务系统构建一个包,但我显然对这个过程有一个错字或误解。

{
    "name": "pureintellect/tickets",
    "description": "Laravel Ticketing system",
    "license": "MIT",
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.5.9"
    },
    "autoload": {
        "psr-4": {
            "Pureintellect\\Tickets\\": "src/"

        }
    }
}

这是一个 Laravel 5.3 项目。我写的包在

packages/pureintellect/tickets

服务提供者是

packages/pureintellect/tickets/src/TicketsServiceProvider.php

错误

[Symfony\Component\Debug\Exception\FatalThrowableError]
 Class 'Pureintellect\Tickets\TicketsServiceProvider' not found

我尝试了不同的路径,例如

"Pureintellect\\Tickets\\": "src/"
"Pureintellect\\Tickets\\": "packages/pureintellect/tickets/"
"Pureintellect\\Tickets\\": "packages/pureintellect/tickets/src"

我做错了什么?正如其他消息所建议的那样,我已经尝试过 composer dump-autoload -o 和 composer update 。我确定它与文件路径或命名空间有关......但也许我只是盯着它太久了。我相信我们都知道它的小错误会占用我们 90% 的时间。感谢您的帮助

【问题讨论】:

    标签: php laravel-5 composer-php


    【解决方案1】:

    如果你的包在packages/pureintellect/tickets/src,那么你的自动加载器应该指向那个...

    "Pureintellect\\Tickets\\": "packages/pureintellect/tickets/src/"
    

    【讨论】:

    • 您的 TicketsServiceProvider 命名空间是否为 Pureintellect\Tickets
    • 是的。我只是仔细检查了
    • 我不知道你都做了什么调试。检查vendor/composer/autoload_psr4.php 以获得'Pureintellect\\Tickets\` => array($baseDir . '/packages/pureintellect/tickets/src')。如果存在,请尝试包含该文件并手动调用该类。必须有一些东西将您引向正确的方向,因为如果该类的命名空间正确且位于该目录中,则该行应该使该类工作。
    【解决方案2】:

    对不起大家!我想到了。原来问题是权限。我需要确保该小组有执行权限。一旦我修复了,事情就开始工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2019-07-11
      • 2015-06-13
      • 1970-01-01
      • 2018-05-26
      • 2016-07-04
      相关资源
      最近更新 更多