Overview

Namespaces

  • DSchoenbauer
    • Orm
      • Builder
      • Entity
      • Enum
      • Events
        • Persistence
        • Validate
          • DataType
          • Schema
      • Exception
      • Framework

Classes

  • DSchoenbauer\Orm\Builder\ModelDirector
  • DSchoenbauer\Orm\Builder\PdoModelBuilder
  • DSchoenbauer\Orm\CrudModel
  • DSchoenbauer\Orm\Entity\AbstractEntity
  • DSchoenbauer\Orm\Enum\ModelEvents
  • DSchoenbauer\Orm\Events\AbstractEvent
  • DSchoenbauer\Orm\Events\Persistence\PdoCreate
  • DSchoenbauer\Orm\Events\Persistence\PdoDelete
  • DSchoenbauer\Orm\Events\Persistence\PdoSelect
  • DSchoenbauer\Orm\Events\Persistence\PdoUpdate
  • DSchoenbauer\Orm\Events\Validate\AbstractValidate
  • DSchoenbauer\Orm\Events\Validate\DataType\AbstractDataType
  • DSchoenbauer\Orm\Events\Validate\DataType\DataTypeBoolean
  • DSchoenbauer\Orm\Events\Validate\DataType\DataTypeDate
  • DSchoenbauer\Orm\Events\Validate\DataType\DataTypeNumber
  • DSchoenbauer\Orm\Events\Validate\DataType\DataTypeString
  • DSchoenbauer\Orm\Events\Validate\Schema\DefaultValue
  • DSchoenbauer\Orm\Events\Validate\Schema\RequiredFields
  • DSchoenbauer\Orm\Events\Validate\Schema\ValidFields
  • DSchoenbauer\Orm\Exception\InvalidDataTypeException
  • DSchoenbauer\Orm\Exception\RequiredFieldMissingException
  • DSchoenbauer\Orm\Framework\Attribute
  • DSchoenbauer\Orm\Framework\AttributeCollection
  • DSchoenbauer\Orm\Model

Interfaces

  • DSchoenbauer\Orm\Builder\BuilderInterface
  • DSchoenbauer\Orm\Builder\DirectorInterface
  • DSchoenbauer\Orm\Entity\EntityInterface
  • DSchoenbauer\Orm\Entity\HasBoolFieldsInterface
  • DSchoenbauer\Orm\Entity\HasDateFieldsInterface
  • DSchoenbauer\Orm\Entity\HasDateWithCustomFormatInterface
  • DSchoenbauer\Orm\Entity\HasDefaultValuesInterface
  • DSchoenbauer\Orm\Entity\HasFilterInterface
  • DSchoenbauer\Orm\Entity\HasNumericFieldsInterface
  • DSchoenbauer\Orm\Entity\HasRequiredFieldsInterface
  • DSchoenbauer\Orm\Entity\HasStaticValuesInterface
  • DSchoenbauer\Orm\Entity\HasStringFieldsInterface
  • DSchoenbauer\Orm\Entity\IsSortableInterface
  • DSchoenbauer\Orm\Exception\OrmExceptionInterface
  • DSchoenbauer\Orm\VisitorInterface
  • Overview
  • Namespace
  • Class
  1: <?php
  2: 
  3: /*
  4:  * To change this license header, choose License Headers in Project Properties.
  5:  * To change this template file, choose Tools | Templates
  6:  * and open the template in the editor.
  7:  */
  8: namespace DSchoenbauer\Orm\Events\Persistence;
  9: 
 10: use DSchoenbauer\Orm\Events\AbstractEvent;
 11: use DSchoenbauer\Orm\Model;
 12: use DSchoenbauer\Sql\Command\Create;
 13: use PDO;
 14: use Zend\EventManager\Event;
 15: 
 16: /**
 17: * Event driven hook to creates information from a PDO connection
 18:  *
 19:  * @author David Schoenbauer <dschoenbauer@gmail.com>
 20:  */
 21: class PdoCreate extends AbstractEvent
 22: {
 23: 
 24:     private $adapter;
 25:     private $create;
 26: 
 27:     /**
 28:      *
 29:      * @param array $events An array of event names to bind to
 30:      * @param PDO $adapter PDO connection to a db of some sort.
 31:      * @param Create $create default null, if no create object offered one will
 32:      * be lazy loaded for you
 33:      * @since v1.0.0
 34:      */
 35:     public function __construct(array $events, PDO $adapter, Create $create = null)
 36:     {
 37:         parent::__construct($events);
 38:         $this->setAdapter($adapter)->setCreate($create);
 39:     }
 40: 
 41:     /**
 42:      * event action
 43:      * @param Event $event object passed when event is fired
 44:      * @return void
 45:      * @since v1.0.0
 46:      */
 47:     public function onExecute(Event $event)
 48:     {
 49:         if (!$event->getTarget() instanceof Model) {
 50:             return;
 51:         }
 52:         /* @var $model Model */
 53:         $model = $event->getTarget();
 54:         $entity = $model->getEntity();
 55:         $this->getCreate()
 56:             ->setTable($entity->getTable())
 57:             ->setData($model->getData())
 58:             ->execute($this->getAdapter());
 59:     }
 60: 
 61:     /**
 62:      * Returns a PHP Data Object
 63:      * @return PDO
 64:      * @since v1.0.0
 65:      */
 66:     public function getAdapter()
 67:     {
 68:         return $this->adapter;
 69:     }
 70: 
 71:     /**
 72:      * PDO connection to a db of some sort.
 73:      * @param PDO $adapter
 74:      * @return $this
 75:      * @since v1.0.0
 76:      */
 77:     public function setAdapter(PDO $adapter)
 78:     {
 79:         $this->adapter = $adapter;
 80:         return $this;
 81:     }
 82: 
 83:     /**
 84:      * object with logic for the Create. If Create is not provided one will be lazy loaded
 85:      * @return Create object that is used for the create logic
 86:      * @since v1.0.0
 87:      */
 88:     public function getCreate()
 89:     {
 90:         if (!$this->create instanceof Create) {
 91:             $this->setCreate(new Create(null, []));
 92:         }
 93:         return $this->create;
 94:     }
 95: 
 96:     /**
 97:      * @param Create $create object with the create logic
 98:      * @return $this
 99:      * @since v1.0.0
100:      */
101:     public function setCreate(Create $create = null)
102:     {
103:         $this->create = $create;
104:         return $this;
105:     }
106: }
107: 
API documentation generated by ApiGen