public function generate(Entity $entity) { $className = "{$entity->getName()}Persistence"; $content = "<?php\nclass {$className} extends Persistence {\n\n" . "\tconst TABLE = \"{$entity->getTable()}\";\n\n"; foreach ($entity->getFinders() as $finder) { $content .= $this->generateFinder($finder, $entity); $content .= $this->generateDeleteBy($finder, $entity); } $content .= $this->generateFindByPrimaryKey($entity); $content .= $this->generateCreate($entity); $content .= $this->generateRemove($entity); $content .= $this->generateUpdate($entity); $content .= $this->generateFindAll($entity); $content .= $this->generateGetCount($entity); $content .= $this->generateGetAsObject($entity); foreach (Singleton::create("ServiceBuilder")->getOneToManyMappedProperties($entity) as $property) { $content .= $this->generateOneToManyFinder($property); } foreach (Singleton::create("ServiceBuilder")->getManyToManyMappedProperties($entity) as $property) { $content .= $this->generateManyToManyFinder($property); } foreach ($entity->getManyToManyProperties() as $property) { $content .= $this->generateManyToManySetter($property); } $content .= "}\n?>"; $destination = "src/service/persistence/{$className}.php"; FileUtil::storeFileContents($destination, $content); }
private function generateIndexes(Entity $entity) { $indexes = array("\tPRIMARY KEY (`{$entity->getPrimaryKey()->getName()}`)"); foreach ($entity->getFinders() as $finder) { $indexes[] = "\t" . $finder->getIndexDefinition(); } return $indexes; }
public function generate(Entity $entity) { $className = "{$entity->getName()}ServiceBase"; $content = "<?php\nclass {$className} {\n\n"; foreach ($entity->getFinders() as $finder) { $content .= $this->generateFinder($finder->getMethodSignature()); $content .= $this->generateDeleteBy($finder->getDeleteByMethodSignature()); } $content .= $this->generateBaseServices($entity); foreach (Singleton::create("ServiceBuilder")->getOneToManyMappedProperties($entity) as $property) { $content .= $this->generateFinder($property->getFinderSignature()); } foreach (Singleton::create("ServiceBuilder")->getManyToManyMappedProperties($entity) as $property) { $content .= $this->generateFinder($property->getFinderSignature()); } foreach ($entity->getManyToManyProperties() as $property) { $content .= $this->generateManyToManySetter($property); } $content .= "}\n?>"; // Write file to class $destination = "src/service/service/{$className}.php"; FileUtil::storeFileContents($destination, $content); }