Piszę system w PHP, który ma napisać do trzech warstw trwałość:PHP DataMapper z wielu warstw utrwalania
- jedna usługa internetowa
- dwóch baz danych (jeden mysql jeden mssql)
Powodem tego są starsze systemy i nie można ich zmienić.
Chcę używać wzorca DataMapper i staram się ustanowić najlepszy sposób, aby osiągnąć to, co chcę. Mam interfejs jak następuje:
<?php
$service = $factory->getService()->create($entity);
?>
Poniżej jest jakiś wymyślony i wyciąć kod dla zwięzłości:
<?php
class Post extends AbstractService
{
protected $_mapper;
public function create(Entity $post)
{
return $this->_mapper->create($post);
}
}
class AbstractMapper
{
protected $_persistence;
public function create(Entity $entity)
{
$data = $this->_prepareForPersistence($entity);
return $this->_persistence->create($data);
}
}
?>
Moje pytanie jest to, że ponieważ istnieją trzy warstwy trwałości, nie będzie również dlatego może być potrzeba trzech programistów dla każdego. Chciałbym stworzyć interfejs inspirowany czystym wzorem, aby to działało.
widzę go jako posiadające trzy opcje:
- wstrzyknąć trzy mappers na służbę i nazywają utworzyć na każdym
- $ _mapper jest tablicą/zbierania i iteracje poprzez nazywając je utworzyć na każdym
- $ _mapper jest rzeczywiście obiekt kontenera, który działa jako dalszego pełnomocnictwa oraz wzywa utworzyć na każdym
Coś wydaje mi się źle ze sobą t hese solutions i docenią wszelkie opinie/uznane wzorce projektowe, które mogą do tego pasować.