Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.

Commit 05ac10f

Browse files
committed
replace setter injection with constructor params injection
1 parent cd8d29c commit 05ac10f

5 files changed

Lines changed: 21 additions & 43 deletions

File tree

README.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,24 +114,19 @@ The only `LockFactory` available at the moment is the `TH\Lock\FileFactory`. Thi
114114
use TH\Lock\FileFactory;
115115

116116
$factory = new FileFactory('/path/to/lock_dir/');
117-
$factory->setLogger($psrLogger);
118-
119-
$factory->create(...);
117+
$lock = $factory->create('resource identifier');
120118
```
121119

122120
## API
123121

124-
There are three methods you can use on a `FileLock`:
122+
There are two methods you can use on a `FileLock`:
125123

126124
* `\TH\Lock\FileLock::acquire($exclusive = FileLock::EXCLUSIVE, $blocking = FileLock::NON_BLOCKING)` used to acquire a lock on the file
127125
* `\TH\Lock\FileLock::release()` used to release a lock on the file
128-
* `\TH\Lock\FileLock::setLogger(\Psr\Log\LoggerInterface $logger)` used to configure this lock logger (configured by the factory if the `LockFile` come from the factory)
129126

130-
And two on `FileFactory':
127+
And one on a `FileFactory':
131128

132129
* `\TH\Lock\FileFactory::create($resource, $owner = null)` used to create a `FileLock` for $resource
133-
* `\TH\Lock\FileFactory::setLogger(\Psr\Log\LoggerInterface $logger)` used to configure lock build by this factory
134-
`
135130

136131
## Notes
137132

src/FileFactory.php

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,16 @@
88
class FileFactory implements LockFactory
99
{
1010
private $lock_dir;
11-
private $logger;
1211
private $hash_algo;
1312

14-
public function __construct($lock_dir, $hash_algo = 'sha256')
13+
private $logger;
14+
15+
public function __construct($lock_dir, $hash_algo = 'sha256', LoggerInterface $logger = null)
1516
{
16-
$this->logger = new NullLogger;
1717
$this->lock_dir = $lock_dir;
1818
$this->hash_algo = $hash_algo;
19-
}
2019

21-
public function setLogger(LoggerInterface $logger)
22-
{
23-
$this->logger = $logger;
20+
$this->logger = $logger ?: new NullLogger;
2421
}
2522

2623
public function create($resource, $owner = null)
@@ -31,9 +28,7 @@ public function create($resource, $owner = null)
3128

3229
$path = $this->lock_dir.'/'.hash($this->hash_algo, serialize($resource)).'.lock';
3330

34-
$lock = new FileLock($path, $resource, $owner, true);
35-
36-
$lock->setLogger($this->logger);
31+
$lock = new FileLock($path, $resource, $owner, true, $this->logger);
3732

3833
return $lock;
3934
}

src/FileLock.php

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,25 @@ class FileLock implements Lock
2323
private $logger;
2424

2525
/**
26-
* @param string $lock_file path to file
27-
* @param string|null $identifier resource identifier (default to $lock_file) for logging
28-
* @param string|null $owner owner name for logging
29-
* @param boolean $remove_on_release remove file on release if no other lock remains
26+
* @param string $lock_file path to file
27+
* @param string|null $identifier resource identifier (default to $lock_file) for logging
28+
* @param string|null $owner owner name for logging
29+
* @param boolean $remove_on_release remove file on release if no other lock remains
30+
* @param LoggerInterface $logger
3031
*/
31-
public function __construct($lock_file, $identifier = null, $owner = null, $remove_on_release = false)
32-
{
32+
public function __construct(
33+
$lock_file,
34+
$identifier = null,
35+
$owner = null,
36+
$remove_on_release = false,
37+
LoggerInterface $logger = null
38+
) {
3339
$this->lock_file = $lock_file;
3440
$this->identifier = $identifier?:$lock_file;
3541
$this->owner = $owner === null ? '' : $owner.': ';
3642
$this->remove_on_release = $remove_on_release;
3743

38-
$this->logger = new NullLogger;
44+
$this->logger = $logger ?: new NullLogger;
3945
}
4046

4147
/**
@@ -107,11 +113,6 @@ public function release()
107113
]);
108114
}
109115

110-
public function setLogger(LoggerInterface $logger)
111-
{
112-
$this->logger = $logger;
113-
}
114-
115116
public function __destruct()
116117
{
117118
$this->release();

src/Lock.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,4 @@ public function acquire();
1717
* @return void
1818
*/
1919
public function release();
20-
21-
/**
22-
* Replace lock logger
23-
* @param LoggerInterface $logger
24-
* @return void
25-
*/
26-
public function setLogger(LoggerInterface $logger);
2720
}

src/LockFactory.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,4 @@ interface LockFactory
1313
* @return Lock
1414
*/
1515
public function create($resource, $owner = null);
16-
17-
/**
18-
* @param LoggerInterface $logger
19-
* @return void
20-
*/
21-
public function setLogger(LoggerInterface $logger);
2216
}

0 commit comments

Comments
 (0)