Inheritance: extends Nette\Object, implements Nextras\Orm\Model\IModel
Example #1
0
File: Model.php Project: ytnuk/orm
 public function __construct(array $configuration, Nextras\Orm\Model\IRepositoryLoader $repositoryLoader, Nextras\Orm\Model\MetadataStorage $metadataStorage, Nette\Caching\IStorage $cacheStorage)
 {
     parent::__construct($configuration, $repositoryLoader, $metadataStorage);
     $this->onFlush[] = function () use($cacheStorage) {
         $cacheStorage->clean([Nette\Caching\Cache::TAGS => $this->tags]);
         $this->tags = [];
     };
 }
 /**
  * @return Model
  */
 public function create()
 {
     $config = Model::getConfiguration($this->repositories);
     $loader = new SimpleRepositoryLoader($this->repositories);
     $metadata = new MetadataStorage($this->storage, $config[2], $loader);
     $model = new Model($config, $loader, $metadata);
     foreach ($this->repositories as $repository) {
         $repository->setModel($model);
     }
     return $model;
 }
 public function beforeCompile()
 {
     $repositories = $this->prepareRepositories();
     $repositoriesConfig = Model::getConfiguration($repositories);
     $this->setupCache();
     $this->setupDependencyProvider();
     $this->setupMetadataParserFactory($this->config['metadataParserFactory']);
     $this->setupRepositoryLoader($repositories);
     $this->setupMetadataStorage($repositoriesConfig);
     $this->setupModel($this->config['model'], $repositoriesConfig);
 }
Example #4
0
 public function loadConfiguration()
 {
     $config = $this->getConfig();
     if (!isset($config['model'])) {
         throw new InvalidStateException('Model is not defined.');
     }
     $repositories = $this->getRepositoryList($config['model']);
     $repositoriesConfig = Model::getConfiguration($repositories);
     $this->setupDependencyProvider();
     $this->setupRepositoryLoader($repositories);
     $this->setupMetadataStorage($repositoriesConfig);
     $this->setupRepositoriesAndMappers($repositories);
     $this->setupModel($config['model'], $repositoriesConfig);
 }