看这个 PSR 中文版,https://github.com/PizzaLiu/PHP-FIG
或英文原版:http://www.php-fig.org/
其中 PRS-0,PSR-1,PSR-2,PSR-4 都比较好理解,
但是不明白,PSR-3 是什么意思,是说如果写日志类,最好要继承那个接口 还是什么意思?
http://www.php-fig.org/psr/psr-3/
还有,看这里 https://packagist.org/explore/
其中“Popular Packages”第一的是 PSR 的日志类,
第二的是monolog
这个日志类,怎么这么屌?
https://packagist.org/packages/monolog/monolog
如果用了monolog
是不是不用管 PSR-3 了?
monolog是符合PSR-3标准的日志类的一种实现
PSR-3要求继承LoggerInterface主要是处于统一各种组件中日志记录模块接口的意图,理想是所有的第三方模块涉及“记录日志”的都通过接受一个LoggerInterface实例然后按接口来记日志,而无需每个模块各自搞一套“如果要记文件,配置XXX,记db配置YYY,日志文件定期删除配ZZZ”之类的东西
所以说题主的最后一句话可能倒过来说更好,要求以PSR-3规范记录日志的地方可以用monolog库的实例作为具体实现
用monolog而不通过LoggerInterface借口的话,达不到PSR-3的初衷
但这是以“写开源模块”“写第三方组件”为前提的(题主可以查查FIG的全称:)) 实际的业务项目中,确实不管PSR-3也不会怎样