123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- /**
- * PHP Exif Reader Adapter Abstract: Common functionality for adapters
- *
- * @link http://github.com/miljar/PHPExif for the canonical source repository
- * @copyright Copyright (c) 2013 Tom Van Herreweghe <tom@theanalogguy.be>
- * @license http://github.com/miljar/PHPExif/blob/master/LICENSE MIT License
- * @category PHPExif
- * @package Reader
- */
- namespace PHPExif\Adapter;
- use PHPExif\Mapper\MapperInterface;
- use PHPExif\Hydrator\HydratorInterface;
- /**
- * PHP Exif Reader Adapter Abstract
- *
- * Implements common functionality for the reader adapters
- *
- * @category PHPExif
- * @package Reader
- */
- abstract class AdapterAbstract implements AdapterInterface
- {
- /**
- * @var string
- */
- protected $hydratorClass = '\\PHPExif\\Hydrator\\Mutator';
- /**
- * @var \PHPExif\Mapper\MapperInterface
- */
- protected $mapper;
- /**
- * @var \PHPExif\Hydrator\HydratorInterface
- */
- protected $hydrator;
- /**
- * @var string
- */
- protected $mapperClass = '';
- /**
- * Class constructor
- *
- * @param array $options Optional array of data to initialize the object with
- */
- public function __construct(array $options = array())
- {
- if (!empty($options)) {
- $this->setOptions($options);
- }
- }
- /**
- * Mutator for the data mapper
- *
- * @param \PHPExif\Mapper\MapperInterface $mapper
- * @return \PHPExif\Adapter\AdapterInterface
- */
- public function setMapper(MapperInterface $mapper)
- {
- $this->mapper = $mapper;
- return $this;
- }
- /**
- * Accessor for the data mapper
- *
- * @return \PHPExif\Mapper\MapperInterface
- */
- public function getMapper()
- {
- if (null === $this->mapper) {
- // lazy load one
- $mapper = new $this->mapperClass;
- $this->setMapper($mapper);
- }
- return $this->mapper;
- }
- /**
- * Mutator for the hydrator
- *
- * @param \PHPExif\Hydrator\HydratorInterface $hydrator
- * @return \PHPExif\Adapter\AdapterInterface
- */
- public function setHydrator(HydratorInterface $hydrator)
- {
- $this->hydrator = $hydrator;
- return $this;
- }
- /**
- * Accessor for the data hydrator
- *
- * @return \PHPExif\Hydrator\HydratorInterface
- */
- public function getHydrator()
- {
- if (null === $this->hydrator) {
- // lazy load one
- $hydrator = new $this->hydratorClass;
- $this->setHydrator($hydrator);
- }
- return $this->hydrator;
- }
- /**
- * Set array of options in the current object
- *
- * @param array $options
- * @return \PHPExif\Reader\AdapterAbstract
- */
- public function setOptions(array $options)
- {
- $hydrator = $this->getHydrator();
- $hydrator->hydrate($this, $options);
- return $this;
- }
- }
|