This commit is contained in:
2026-07-23 10:37:26 +08:00
parent 090abf48fa
commit 40add876cd
3503 changed files with 838201 additions and 5 deletions
@@ -0,0 +1,2 @@
composer.lock
vendor/
+20
View File
@@ -0,0 +1,20 @@
# psr-log-aware-trait
Trait to allow support of different psr/log versions.
By including this PsrLogAwareTrait, you can allow composer to resolve your PsrLogger version for you.
## Use
Require the trait.
composer require chromatic/psr-log-aware-trait
In your code, you no longer have to set a $logger property on your classes, since that comes with the trait, and you do not need to implement the `function setLogger()` method, since that also comes along with the trait.
```php
use PsrLogAwareTrait;
```
Will allow you to call `setLogger()` in your classes and fulfil the requirements of the PsrLoggerAwareInterface implementation.
+24
View File
@@ -0,0 +1,24 @@
{
"name": "mpdf/psr-log-aware-trait",
"description": "Trait to allow support of different psr/log versions.",
"type": "library",
"require": {
"psr/log": "^3.0"
},
"license": "MIT",
"autoload": {
"psr-4": {
"Mpdf\\PsrLogAwareTrait\\": "src/"
}
},
"authors": [
{
"name": "Mark Dorison",
"email": "mark@chromatichq.com"
},
{
"name": "Kristofer Widholm",
"email": "kristofer@chromatichq.com"
}
]
}
@@ -0,0 +1,27 @@
<?php
namespace Mpdf\PsrLogAwareTrait;
use Psr\Log\LoggerInterface;
trait MpdfPsrLogAwareTrait
{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
public function setLogger(LoggerInterface $logger): void
{
$this->logger = $logger;
if (property_exists($this, 'services') && is_array($this->services)) {
foreach ($this->services as $name) {
if ($this->$name && $this->$name instanceof \Psr\Log\LoggerAwareInterface) {
$this->$name->setLogger($logger);
}
}
}
}
}
@@ -0,0 +1,20 @@
<?php
namespace Mpdf\PsrLogAwareTrait;
use Psr\Log\LoggerInterface;
trait PsrLogAwareTrait
{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
public function setLogger(LoggerInterface $logger): void
{
$this->logger = $logger;
}
}