/**
  * 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);
 }