【问题标题】:How to autoload a repository in composer which does not follow PSR-0 or PSR-4?如何在 Composer 中自动加载不遵循 PSR-0 或 PSR-4 的存储库?
【发布时间】:2023-04-09 06:18:01
【问题描述】:

所以,我正在尝试使用 jcleblanc/reddit-php-sdk,但它不遵循任何标准,也没有可用的存储库,所以我不得不自己在我的 composer.json 文件中手动定义它:

"repositories" : [{
    "type": "package",
    "package": {
        "name": "jcleblanc/reddit-php-sdk",
        "version": "dev-master",
        "source": {
            "url": "https://github.com/jcleblanc/reddit-php-sdk",
            "type": "git",
            "reference": "origin/master"
        },
        "autoload": {
            "classmap": ["reddit-php-sdk/", "/", "reddit.php", "config.php"]
        }
    }
}],

vendor/ 中的目录结构在这里:

但是,当我随后运行composer dump-autoload 时,此项目中的类不会自动加载,并且不会出现在任何autoload_*.php 作曲家文件中。这意味着我在尝试使用它时当然会收到 "Class 'reddit' not found" 错误。

解决方案?

【问题讨论】:

    标签: php repository composer-php psr-0


    【解决方案1】:

    你可以使用 Composer 的fileautoloading

    {
    "autoload": {
        "files": ["src/MyLibrary/functions.php"]
        }
    }
    

    但是,这更适合辅助函数文件,我没有尝试使用 Class 文件(尽管没有理由它不应该工作)。

    【讨论】:

    • 欣赏答案,但这不起作用。甚至对我所有的包进行了完整的作曲家重新安装。
    【解决方案2】:

    我自己分叉了这个项目,但事实证明原来的项目还是坏了。

    【讨论】:

    • 想要链接你的分叉?
    猜你喜欢
    • 2014-07-25
    • 2015-01-08
    • 2014-03-24
    • 2015-04-20
    • 2018-07-25
    • 2014-08-12
    • 1970-01-01
    • 2015-04-09
    • 2014-11-01
    相关资源
    最近更新 更多