500 Ошибка при тестировании пакета monlog

Я пытаюсь протестировать пакет monolog с помощью composer (полное раскрытие: это моя первая попытка с использованием composer) и получаю ошибку 500 при запуске этого кода:

<?php

// composer autoloader
require_once 'vendor/autoload.php';


// Shortcuts for simpler usage
use \Monolog\Logger;
use \Monolog\Formatter\LineFormatter;
use \Monolog\Handler\StreamHandler;

// Common logger
$log = new Logger('files');
// Line formatter without empty brackets in the end
$formatter = new LineFormatter(null, null, false, true);
// Debug level handler
$debugHandler = new StreamHandler('debug.log', Logger::DEBUG);
$debugHandler->setFormatter($formatter);
// Error level handler
$errorHandler = new StreamHandler('error.log', Logger::ERROR);
$errorHandler->setFormatter($formatter);
// This will have both DEBUG and ERROR messages
$log->pushHandler($debugHandler);
// This will have only ERROR messages
$log->pushHandler($errorHandler);
// The actual logging
$log->debug('I am debug');
$log->error('I am error', array('productId' => 123));

?>

В Dreamweaver я вижу, что три строки 'use' в monolog_test.php выделены красным:

введите описание изображения здесь

Сообщение об ошибке:

введите описание изображения здесь

В моем /Applications/MAMP/logs/php_error.log:

[03-Mar-2018 14:10:05 Америка / Торонто] Неустранимая ошибка PHP: класс 'Monolog\Logger' не найден в /Users/Ross/Dropbox/htdocs/wonderfest/secure/contest/monolog_test.php в строке 13

Моя настройка файловой системы выглядит так:

введите описание изображения здесь

Я установил Composer глобально на мой Mac, и я знаю, что установка хороша, потому что я смог добавить некоторые пакеты, используя composer require . Мой файл composer.json:

{
    "require": {
        "monolog/monolog": "1.0",
        "phpfastcache/phpfastcache": "^6.1",
        "mpdf/mpdf": "^7.0"
    }
}

И мой вендор \autoload.php:

<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit348f040c8a2a7d48c0a311fb1af10c08::getLoader();

Я предполагаю, что мой вопрос заключается в следующем: нужно ли делать что-либо кроме установки пакетов, чтобы сделать их пространства имен доступными?

1 ответ

Я обновил монолог до последней стабильной версии, и хотя 3 строки "использования" в Dreamweaver по-прежнему отображаются как ошибки, это работает. То, что бросило меня, было этой строкой на странице пакета монолога:

Monolog работает с PHP 7.0 или выше, используйте поддержку Monolog ^1.0 для PHP 5.3+.

Я подумал, что это означает, что мне нужно использовать v1.0 для моего PHP 5.6.32, но когда я удалил это ограничение версии из команды require, все, похоже, работает - я получаю два журнала в той же папке, что и файл monolog_test.php,

Мой новый composer.json (с одним дополнительным установленным пакетом):

{
    "require": {
        "monolog/monolog": "^1.23",
        "mpdf/mpdf": "^7.0",
        "phpfastcache/phpfastcache": "^6.1",
        "phpmailer/phpmailer": "^6.0"
    }
}
Другие вопросы по тегам