Композитор и усилитель Parsedown — класс ‘UserFrosting \\ Parsedown’ не найден

Мне удалось установить 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 не помогло.

Что мне здесь не хватает? Почему Parsedown ожидается под UserFrosting — UserFrosting\ 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"]
}
}

1

Решение

Похоже, вы пытаетесь выполнить эту строку кода $Parsedown = new Parsedown(); в классе с пространством имен UserFrosting,

Либо добавить use блок в верхней части вашего php-файла, вот так: use Parsedown; (это должно следовать после объявления пространства имен) или введите обратную косую черту перед именем класса, когда вы его используете, например: $Parsedown = new \Parsedown();, Последний начнет искать этот класс в корневом пространстве имен.

Вам не нужно добавлять этот класс в раздел карты автозагрузки composer.json файл. Если пакет извлекается композитором, он автоматически добавит все в автозагрузчик после запуска dump-autoload.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]