小编fab*_*b2s的帖子

php方法参数类型提示带问号(?type)

我只是在方法类型提示中使用问号的PHP(symfony/laravel)代码感觉:

public function functionName(?int $arg = 0)
Run Code Online (Sandbox Code Playgroud)

在其他情况下,?类型不是最后一个,但我没有找到任何没有默认的类型.

问题是,我找不到任何关于此的信息,我查了一下:

和7.2一样,但由于代码只需要7.1,所以看起来很正常.

我也用谷歌搜索,并在这里搜索,但要么这没有记录或问号主题是打败搜索引擎.

所以我现在觉得有点愚蠢,如果有人能够在方法签名参数中对这个问号的含义进行启发,我真的很感激.

谢谢

php

16
推荐指数
3
解决办法
6060
查看次数

使用laravel5.6自定义(动态)日志文件名

使用laravel 5.5,我们可以访问configureMonologUsing()$ app中的方法,这样就可以在bootstrap/app.php中实现这样的功能:

$app->configureMonologUsing(function (Monolog\Logger $monolog) {
    $processUser = posix_getpwuid(posix_geteuid());
    $processName= $processUser['name'];

    $filename = storage_path('logs/laravel-' . php_sapi_name() . '-' . $processName . '.log');
    $handler = new Monolog\Handler\RotatingFileHandler($filename);
    $monolog->pushHandler($handler);
});
Run Code Online (Sandbox Code Playgroud)

当您的应用程序可以从具有不同用户(需要)和文件轮换的不同上下文(例如CLI/HTTP)调用时,执行此操作非常有用.执行此操作可防止在HTTP用户创建日志文件之前写入错误,然后CLI会尝试在其中添加内容,反之亦然.

处理这个是非常棘手或不安全的,因为它涉及能够在可能尚不存在的文件上设置写权限.

另外,通过上下文分隔日志非常方便,因为它们通常没什么共同之处,因此可以更容易地在它们之间进行搜索.

不幸的是,使用laravel 5.6不再可能采用这种方式,而且我还没有找到一种方法来透明地执行所有基于文件的日志记录.

谢谢

php laravel-5.6

3
推荐指数
2
解决办法
3147
查看次数

标签 统计

php ×2

laravel-5.6 ×1