Example #1
0
 private static function createTable($type)
 {
     $class = new ReflectionClass($type);
     $columns = $class->getStaticPropertyValue('columns', array());
     $columns['id'] = 'identifier';
     $declarations = "";
     foreach ($columns as $name => $typeName) {
         $declarations .= "`{$name}` " . Type::get($typeName)->mySqlName() . ", ";
     }
     $query = "CREATE TABLE `" . self::tableName($type) . "` (";
     $query .= $declarations;
     $query .= "PRIMARY KEY (`id`)";
     //// TODO: Put foreign key constraints back when creation of tables can have topological order imposed.
     //if ($type != __CLASS__)
     //	$query .= ", FOREIGN KEY (`id`) REFERENCES `" . self::tableName($class->getParentClass()->getName()) . "` (`id`) ON DELETE CASCADE";
     $query .= ") engine=" . Options::dbEngine() . ";";
     Database::query($query, "{$type} table");
 }
Example #2
0
 /**
  * @param array $parametersA
  * @param array $parametersB
  * @return array
  */
 public static function analyze(array $parametersA, array $parametersB)
 {
     $changes = ['parameter_added' => false, 'parameter_removed' => false, 'parameter_renamed' => false, 'parameter_typing_added' => false, 'parameter_typing_removed' => false, 'parameter_default_added' => false, 'parameter_default_removed' => false, 'parameter_default_value_changed' => false];
     $lengthA = count($parametersA);
     $lengthB = count($parametersB);
     // TODO(tom@tomrochette.com): This is only true if newer params do not have defaults
     if ($lengthA < $lengthB) {
         $changes['parameter_added'] = true;
     } elseif ($lengthA > $lengthB) {
         $changes['parameter_removed'] = true;
     }
     $iterations = min($lengthA, $lengthB);
     for ($i = 0; $i < $iterations; ++$i) {
         // Name checking
         if ($parametersA[$i]->name !== $parametersB[$i]->name) {
             $changes['parameter_renamed'] = true;
         }
         // Type checking
         if (Type::get($parametersA[$i]->type) !== Type::get($parametersB[$i]->type)) {
             //				if ($paramsA[$i]->default !== null && $paramsB[$i]->default !== null) {
             //					$changes['parameter_default_value_changed'] = true;
             if ($parametersA[$i]->type !== null) {
                 $changes['parameter_typing_removed'] = true;
             }
             if ($parametersB[$i]->type !== null) {
                 $changes['parameter_typing_added'] = true;
             }
         }
         // Default checking
         if ($parametersA[$i]->default === null && $parametersB[$i]->default === null) {
             // Do nothing
         } elseif ($parametersA[$i]->default !== null && $parametersB[$i]->default === null) {
             $changes['parameter_default_removed'] = true;
         } elseif ($parametersA[$i]->default === null && $parametersB[$i]->default !== null) {
             $changes['parameter_default_added'] = true;
             // TODO(tom@tomrochette.com): Not all nodes have a value property
         } elseif (!Node::isEqual($parametersA[$i]->default, $parametersB[$i]->default)) {
             $changes['parameter_default_value_changed'] = true;
         }
     }
     return $changes;
 }
Example #3
0
 public static function call()
 {
     $task = $_POST['task'];
     if ($task == 'getContent' && isset($_POST['title'])) {
         include_once 'Content.php';
         Content::getFromTitle();
     } else {
         if ($task == 'getContent') {
             include_once 'Content.php';
             Content::get();
         } else {
             if ($task == 'addContent') {
                 include_once 'Content.php';
                 Content::add();
             } else {
                 if ($task == 'editContent') {
                     include_once 'Content.php';
                     Content::edit();
                 } else {
                     if ($task == 'deleteContent') {
                         include_once 'Content.php';
                         Content::remove();
                     } else {
                         if ($task == 'getType') {
                             include_once 'Type.php';
                             Type::get();
                         } else {
                             if ($task == 'addType') {
                                 include_once 'Type.php';
                                 Type::add();
                             } else {
                                 if ($task == 'editType') {
                                     include_once 'Type.php';
                                     Type::edit();
                                 } else {
                                     if ($task == 'deleteType') {
                                         include_once 'Type.php';
                                         Type::remove();
                                     } else {
                                         if ($task == 'getContentOnUser') {
                                             include_once 'ContentOnUser.php';
                                             ContentOnUser::get();
                                         } else {
                                             if ($task == 'addContentToUser') {
                                                 include_once 'ContentOnUser.php';
                                                 ContentOnUser::add();
                                             } else {
                                                 if ($task == 'editContentOnUser') {
                                                     include_once 'ContentOnUser.php';
                                                     ContentOnUser::edit();
                                                 } else {
                                                     if ($task == 'removeContentFromUser') {
                                                         include_once 'ContentOnUser.php';
                                                         ContentOnUser::remove();
                                                     } else {
                                                         if ($task == 'useContentOnUser') {
                                                             include_once 'ContentOnUser.php';
                                                             ContentOnUser::useContentOnUser();
                                                         } else {
                                                             if ($task == 'getUser') {
                                                                 include_once 'User.php';
                                                                 User::get();
                                                             } else {
                                                                 echo "Task not recognized.<br>";
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }