1: <?php
2:
3: namespace PHPixie\ORM\Relationships\Type\Embeds;
4:
5: abstract class Preloader extends \PHPixie\ORM\Relationships\Relationship\Implementation\Preloader
6: {
7: protected $preloaders = array();
8:
9: public function addPreloader($relationship, $preloader)
10: {
11: $this->preloaders[$relationship] = $preloader;
12: }
13:
14: public function loadProperty($property)
15: {
16: $entities = $this->getEntities($property);
17: foreach($entities as $entity) {
18: foreach($this->preloaders as $relationship => $preloader) {
19: $entityProperty = $entity->getRelationshipProperty($relationship);
20: $preloader->loadProperty($entityProperty);
21: }
22: }
23: }
24:
25: abstract protected function getEntities($property);
26: }
27: