X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fpq%2FMapper%2FProperty%2FRef.php;h=01489d9c1b8180e201c37759dfd99b5981880a93;hb=9667b439ab6355373207938e9a6fb20c68857786;hp=84f39f41e7cbd660969983967158b5aa862e1f59;hpb=d4d84fb9b85f0216bd611946d59054a606c71960;p=m6w6%2Fpq-gateway diff --git a/lib/pq/Mapper/Property/Ref.php b/lib/pq/Mapper/Property/Ref.php index 84f39f4..01489d9 100644 --- a/lib/pq/Mapper/Property/Ref.php +++ b/lib/pq/Mapper/Property/Ref.php @@ -4,6 +4,7 @@ namespace pq\Mapper\Property; use pq\Gateway\Row; use pq\Mapper\Mapper; +use pq\Mapper\PropertyInterface; use pq\Mapper\RefProperty; use pq\Mapper\RefPropertyInterface; use UnexpectedValueException; @@ -11,12 +12,22 @@ use UnexpectedValueException; class Ref implements RefPropertyInterface { use RefProperty; - + + /** + * Create a parent row mapping + * @param Mapper $mapper + * @param string $property + */ function __construct(Mapper $mapper, $property) { $this->mapper = $mapper; $this->property = $property; } + /** + * Read the parent object + * @param Row $row + * @param object $objectToUpdate + */ function read(Row $row, $objectToUpdate) { $val = $this->extract($objectToUpdate); if (!isset($val)) { @@ -27,6 +38,12 @@ class Ref implements RefPropertyInterface } } + /** + * Write the parent row's foreign key + * @param object $object + * @param Row $rowToUpdate + * @throws UnexpectedValueException + */ function write($object, Row $rowToUpdate) { $map = $this->mapper->mapOf($this->refClass); $ref = $this->extract($object); @@ -45,6 +62,11 @@ class Ref implements RefPropertyInterface } } + /** + * Find the property exposing $col + * @param string $col + * @return PropertyInterface[] + */ private function findFieldProperty($col) { $map = $this->mapper->mapOf($this->refClass); return array_filter($map->getProperties(), function($property) use($col) {