Source of file TemplateDataSourceFactory.php
Size: 1,070 Bytes - Last Modified: 2019-06-27T09:09:04+00:00
/home/vagrant/www/document-templates/src/TemplateDataSources/TemplateDataSourceFactory.php
| 123456789101112131415161718192021222324252627282930313233343536373839404142 | <?phpnamespace BWF\DocumentTemplates\TemplateDataSources; class TemplateDataSourceFactory {/** * @param array|object $data * @param string $name * @return TemplateDataSource */public static function build($data, $name = ''){ $templateDataSource = $data; $buildRequired = false; if(is_array($data)){ $buildRequired = true; } else if(is_object($data)) { $reflexionData = new \ReflectionObject($data); if(!$reflexionData->implementsInterface(TemplateDataSourceInterface::class)){ $buildRequired = true; } else{ $data->setNamespace($name); } } if($buildRequired){ if($data instanceof \IteratorAggregate){ $templateDataSource = new IterableTemplateDataSource($data, $name); } else{ $templateDataSource = new TemplateDataSource($data, $name); } } return $templateDataSource; } } |