【问题标题】:Composer & Parsedown - Class 'UserFrosting\\Parsedown' not foundComposer & Parsedown - 找不到类“UserFrosting\\Parsedown”
【发布时间】:2017-04-07 04:53:51
【问题描述】:

我设法使用带有

的作曲家安装 Parsedown
    "require": {
        ...
        "erusev/parsedown": "^1.6"
    },

并将类路径添加到自动加载部分

"autoload": {
    "classmap" : [
        "controllers", "middleware", "models", "plugins", "vendor/erusev/parsedown"
    ]
}

但是当我尝试执行这一行时...

    $Parsedown = new Parsedown();

...我最终得到了这个错误:

找不到类“UserFrosting\Parsedown”

运行 php composer.phar dump-autoload 没有帮助。

我在这里缺少什么?为什么在 UserFrosting - UserFrosting\Parsedown 下需要 Parsedown?

这是完整的 composer.json:

{
    "name": "userfrosting/UserFrosting",
    "type": "project",
    "description": "A secure, modern user management system for PHP.",
    "keywords": ["php user management", "usercake", "bootstrap"],
    "homepage": "https://github.com/userfrosting/UserFrosting",
    "license" : "MIT",
    "authors" : [
        {
            "name": "Alexander Weissman",
            "homepage": "https://alexanderweissman.com"
        }
    ],
    "require": {
        "birke/rememberme" : "1.0.4",    
        "illuminate/database" : "5.0.33",
        "league/csv": "8.1.*",
        "nikic/php-parser" : "~1",
        "php" : ">=5.4.0",
        "phpmailer/phpmailer" : "5.2.10",        
        "twig/twig" : "~1.0",
        "slim/slim" : "2.*",
        "slim/views" : "0.1.3",
        "userfrosting/fortress" : "1.*",
        "wikimedia/composer-merge-plugin": "~1",
        "components/highlightjs": "9.8.0",
        "aws/aws-sdk-php": "3.*",
        "erusev/parsedown": "^1.6"
    },
    "extra": {
        "merge-plugin": {
            "include": [
                "plugins/*/composer.json"
            ],
            "recurse": true,
            "replace": false,
            "merge-dev": true,
            "merge-extra": false
        }
    },
    "autoload": {
        "classmap" : [
            "controllers", "middleware", "models", "plugins", "vendor/erusev/parsedown"
        ]
    }
}

【问题讨论】:

标签: php composer-php userfrosting parsedown


【解决方案1】:

看起来您正试图在命名空间为UserFrosting 的类中执行这行代码$Parsedown = new Parsedown();

要么在你的 php 文件的顶部添加一个use 块,像这样:use Parsedown;(这应该在命名空间声明之后),或者在你使用它时在类名之前输入一个反斜杠,像这样: $Parsedown = new \Parsedown();。后者将开始在根命名空间中寻找此类。

您不需要将此类添加到composer.json 文件的自动加载类映射部分。如果一个包被 composer 拉取,composer 会在运行 dump-autoload 后自动将所有内容添加到 autoloader 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 2017-01-03
    • 2018-07-30
    • 2017-05-24
    • 2014-11-15
    • 2016-06-17
    • 1970-01-01
    • 2020-08-18
    相关资源
    最近更新 更多