测试monlog包

时间:2018-03-03 16:36:47

标签: php namespaces composer-php monolog

我正在尝试使用composer测试monolog包(完全披露:这是我第一次尝试使用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中看到monolog_test.php中的三个“use”行以红色突出显示:

enter image description here

错误消息是:

enter image description here

在我的/Applications/MAMP/logs/php_error.log中:

  

[03-Mar-2018 14:10:05 America / Toronto] PHP致命错误:等级   找不到'Monolog \ Logger'   /Users/Ross/Dropbox/htdocs/wonderfest/secure/contest/monolog_test.php   第13行

我的文件系统设置如下:

enter image description here

我在Mac上全局安装了Composer,我知道安装很好,因为我能够使用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 个答案:

答案 0 :(得分:1)

我将monolog更新到最新的稳定版本,尽管Dreamweaver中的3个“使用”行仍然显示为错误,但它可以正常工作。是什么告诉我的是monolog包页面上的这一行:

  

Monolog适用于PHP 7.0或更高版本,使用Monolog ^ 1.0 for 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"
    }
}