import axiom without dependency on symfony console
Some checks failed
abc-api/abcParser/pipeline/head There was a failure building this commit
Some checks failed
abc-api/abcParser/pipeline/head There was a failure building this commit
This commit is contained in:
56
axiom_src/Repositories/InMemoryRepository.php
Normal file
56
axiom_src/Repositories/InMemoryRepository.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace Enzyme\Axiom\Repositories;
|
||||
|
||||
use Enzyme\Axiom\Atoms\AtomInterface;
|
||||
use Enzyme\Axiom\Bags\BagInterface;
|
||||
use Enzyme\Axiom\Factories\FactoryInterface;
|
||||
use Enzyme\Axiom\Models\ModelInterface;
|
||||
|
||||
class InMemoryRepository implements RepositoryInterface
|
||||
{
|
||||
protected $factory;
|
||||
protected $store;
|
||||
|
||||
public function __construct(FactoryInterface $factory)
|
||||
{
|
||||
$this->factory = $factory;
|
||||
$this->store = [];
|
||||
}
|
||||
|
||||
public function add(ModelInterface $model)
|
||||
{
|
||||
$this->store[$model->identity()] = $model;
|
||||
}
|
||||
|
||||
public function removeById(AtomInterface $id)
|
||||
{
|
||||
if ($this->has($id)) {
|
||||
unset($this->store[$id->getValue()]);
|
||||
}
|
||||
}
|
||||
|
||||
public function has(AtomInterface $id)
|
||||
{
|
||||
return isset($this->store[$id->getValue()])
|
||||
&& array_key_exists($id->getValue(), $this->store);
|
||||
}
|
||||
|
||||
public function update(ModelInterface $model, BagInterface $data)
|
||||
{
|
||||
$updated_model = $this->factory->update($model, $data);
|
||||
$this->store[$model->identity()] = $updated_model;
|
||||
}
|
||||
|
||||
public function getById(AtomInterface $id)
|
||||
{
|
||||
return $this->has($id)
|
||||
? $this->store[$id->getValue()]
|
||||
: null;
|
||||
}
|
||||
|
||||
public function getAll()
|
||||
{
|
||||
return $this->store;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user