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);
 }
Ejemplo n.º 2
0
 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);
 }