/** * END GENERATED GETTERS/SETTERS */ public static function fromDataString($dataString) { $expression = '([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[\\])?)'; // php's expression syntax: http://www.php.net/manual/en/language.oop5.basic.php, modified with optional [] if (preg_match_all('~[*\\s]+' . $expression . ':' . $expression . '(:' . $expression . ')?+~', $dataString, $matches)) { $vars = $matches[1]; $types = $matches[3]; $scopes = $matches[6]; $entity = new ClassEntity(); $members = self::getMembersFor($vars, $scopes, $types); $entity->setMembers($members); if (preg_match("/DATASTRING: ([a-zA-Z]+)/", $dataString, $nameMatch)) { $entity->setName($nameMatch[1]); } return $entity; } }
public function generateCode(ClassEntity $entity = null) { if (!$entity) { return "Submit your class definition first."; } $html = '<pre>'; $html .= '$ php app/console doctrine:generate:entity --entity="YourBundle:Category" --fields="'; foreach ($entity->getMembers() as $member) { if ($member->getType() == ClassMember::MEMBER_TYPE_PROPERTY) { $html .= $member->getName() . ':' . $member->getMemberType() . " "; } } $html .= '"</pre>'; $html .= "<br>Or:<br><br><pre>"; $html .= '$html .= $ php app/console doctrine:generate:entity --entity="YourBundle:Category" --fields="' . "\n\t"; foreach ($entity->getMembers() as $member) { if ($member->getType() == ClassMember::MEMBER_TYPE_PROPERTY) { $html .= $member->getName() . ':' . $member->getMemberType() . " \\ \n\t"; } } $html .= '"'; return $html; }
public function generateJsonCreation(ClassEntity $class) { $array = array(); foreach ($class->getMembers() as $member) { if ($member->getType() != ClassMember::MEMBER_TYPE_PROPERTY) { continue; } switch ($member->getMemberType()) { case 'int': case 'integer': case 'numeric': $value = 0; break; case 'DateTime': $value = date("Y-m-d H:i:s"); break; case 'double': case 'float': $value = 0.0; break; case 'string': $value = ''; break; case 'boolean': $value = true; break; default: $value = null; } if (preg_match('|\\[\\]|', $member->getMemberType())) { $value = array(); } $array[$member->getName()] = $value; } $html = json_encode($array, JSON_PRETTY_PRINT); return $html; }
protected function createContent(Request $request, $modules) { $class = ClassEntity::fromRequest($request); $html = '<div id="myTabContent" class="tab-content">'; $index = 0; foreach ($modules as $module => $enabled) { $generator = $this->createGenerator($module); $divClass = $index == 0 ? ' active' : ''; $html .= ' <div class="tab-pane fade in' . $divClass . '" id="' . $generator->getName() . '"> ' . $generator->generateCode($class) . ' </div>'; $index++; } $html .= '</div>'; return $html; }
public function getToArray(ClassEntity $entity = null) { $code = array(); $code[] = sprintf('%s/**', $this->getIndentation()); $code[] = sprintf('%s * Create the data array for the %s', $this->getIndentation(), $entity->getName()); $code[] = sprintf('%s *', $this->getIndentation(), $entity->getName()); $code[] = sprintf('%s * @param %s $%s The %s to convert to an array', $this->getIndentation(), $entity->getName(), lcfirst($entity->getName()), $entity->getName()); $code[] = sprintf('%s * @return array The data array for the %s', $this->getIndentation(), $entity->getName()); $code[] = sprintf('%s */', $this->getIndentation()); $code[] = sprintf('%sfunction toArray(%s $%s)', $this->getIndentation(), $entity->getName(), lcfirst($entity->getName())); $code[] = sprintf('%s{', $this->getIndentation()); // body $code[] = sprintf('%s$data = array(', $this->getIndentation(2), lcfirst($entity->getName())); $members = $entity->getMembers(); foreach ($members as $member) { if ($member->getType() != 'property') { continue; } $code[] = sprintf("%s'%s' => \$%s->get%s(),", $this->getIndentation(3), $member->getName(), lcfirst($entity->getName()), ucfirst($member->getName())); } $code[] = sprintf('%s);', $this->getIndentation(2)); $code[] = sprintf(''); $code[] = sprintf('%sreturn $data;', $this->getIndentation(2)); // end body $code[] = sprintf('%s}', $this->getIndentation()); return $code; }
public function outputDataString(ClassEntity $entity) { $dataString = ''; $members = $entity->getMembers(); foreach ($members as $member) { if ($member->getType() != 'getter' && $member->getType() != 'setter') { $dataString .= $this->getIndentation() . " * " . $member->getName() . ':' . $member->getMemberType() . ':' . $member->getAccess() . "\n"; } } return $this->getIndentation() . ' ' . trim($dataString); }