将日志文件添加到苗条框架 - php

我对Slim完全陌生。在过去的3-4年中,我一直在使用php,但我始终从头开始做所有事情。我想学习一些我必须要做的休息服务的框架。

我已经在苗条的网页上按照教程进行了操作,以使简单的休息服务正常工作,但是我想添加一个日志系统,以查看出现问题或异常的情况。

这是我所知道的:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../Slim/Slim.php';

\Slim\Slim::requisterAutoloader();

$application = new \Slim\App();
$logger = $application->log;
$logger->setEnabled(true);
$logger->setLevel(\Slim\Log::DEBUG);

$application->get(
  '/hello/user',
  function ()
  {
    GLOBAL $logger;
    $logger->info("starting the handling function");
    echo "<data>response</data>";
    $logger->info("ending handling function");
  });

$application->run();
?>

我也尝试了独白,但没有成功。

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

require '../vendor/autoload.php';


$logger = new \Flynsarmy\SlimMonolog\Log\MonologWriter(array(
    'handlers' => array(
        new \Monolog\Handler\StreamHandler('./logs/'.date('Y-m-d').'.log'),
    ),
));

$app = new Slim\App(array(
 'log.writer' => $logger,
));


$app->get('/hello/{name}', function (Request $request, Response $response){
    $name = $request->getAttribute('name');
    $response->getBody()->write("Hello, $name");
    //$app->log->writer("hola");
    $this->logger->info("Slim-Skeleton '/' route");
    return $response;
    });
    $app->run();

我真正想要的是在同一个文件中包含警告,调试,信息...的每日日志。每天更改文件。

参考方案

slim-skeleton应用程序显示了如何集成独白。

使用DI容器注册记录器:

$container['logger'] = function ($c) {
    $settings = $c->get('settings')['logger'];
    $logger = new \Monolog\Logger('test-app');
    $logger->pushHandler(new Monolog\Handler\StreamHandler('php://stdout', \Monolog\Logger::DEBUG));
    return $logger;
};

在关闭时使用它:

$app->get('/hello/{name}', function (Request $request, Response $response){
    $name = $request->getAttribute('name');
    $response->getBody()->write("Hello, $name");
    $this->get('logger')->info("Slim-Skeleton '/' route");
    return $response;
});

日志将输出到stdout,因此,您将在apache错误日志中看到,或者如果您使用的是内置PHP服务器,则将在终端中看到。

验证IBAN PHP - php

在设计新平台时,我们尝试集成IBAN编号。我们必须确保IBAN已经过验证,并且存储在数据库中的IBAN始终正确。那么验证数字的正确方法是什么? 参考方案 正如我在其他问题中解释的逻辑一样,我尝试自己创建一个函数。根据Wikipedia文章中解释的逻辑,在下面找到合适的功能。国家特定验证。它适合吗http://en.wikipedia.org/wiki/Int…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…

在xpath中选择多个条件 - php

我正在尝试使用来自高尔夫比赛的xml提要,以显示每个高尔夫球手在高尔夫球场上的位置。目前,我想展示符合两个条件的所有高尔夫球手(排在前25名,以及所有加拿大高尔夫球手)。这是xml提要的示例。<GolfDataFeed Type="Leaderboards" Timestamp="3/21/2012 9:18:09 PM&…

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…