public function register(EntityDefinition $builder) { $this->defs[$builder->full_name] = $builder; $this->unchecked[] = $builder; $this->ioc->bind('bap.remodel.scopes.' . str_replace('\\', '.', $builder->full_name), function () use($builder) { return $builder->scopes; }); $this->tailor->bindCallback($builder->full_name, function (Generator $gen) use($builder) { $this->checkDefinitions(); $file = $gen->generate('Entity', $builder->toArray()); $gen->includeFile($file); }); foreach (['Id', 'Gateway', 'Repository', 'NotFoundException'] as $class) { $this->tailor->bindCallback($builder->full_name . $class, function (Generator $gen) use($builder, $class) { $this->checkDefinitions(); $file = $gen->generate($class, $builder->toArray()); $gen->includeFile($file); }); } }