コード例 #1
0
ファイル: RoomBan.php プロジェクト: ZiperRom1/awesomeChatRoom
 /**
  * Constructor that calls the parent Entity constructor and affect values if values are passed
  *
  * @param      array  $data   Array($columnName => $value) pairs to set the object DEFAULT null
  */
 public function __construct(array $data = null)
 {
     parent::__construct('RoomBan');
     if ($data !== null) {
         $this->setAttributes($data);
     }
 }
コード例 #2
0
 /**
  * Utility method to set en return the table constraints to put in a SQL create table query
  *
  * @return     string  The formatted string to put in a SQL create table query
  */
 private function createTableConstraints() : string
 {
     $constraints = $this->entity->getConstraints();
     $sql = '';
     if (isset($constraints['primary'])) {
         $sql .= ',' . PHP_EOL . "\tCONSTRAINT `" . $constraints['primary']['name'] . '`';
         $sql .= ' PRIMARY KEY (' . $constraints['primary']['columns'] . ')';
     }
     if (isset($constraints['unique']) && $constraints['unique'] !== '') {
         $sql .= ',' . PHP_EOL . "\tUNIQUE `" . $this->entity->getTableName() . '_unique_constraint`';
         $sql .= ' (' . $constraints['unique'] . ')';
     }
     if (isset($constraints['foreignKey'])) {
         $names = array_keys($constraints['foreignKey']);
         foreach ($names as $name) {
             $sql .= ',' . PHP_EOL . "\tCONSTRAINT `" . $name . '`';
             $sql .= ' FOREIGN KEY (' . $constraints['foreignKey'][$name]['columns'] . ')';
             $sql .= PHP_EOL . "\t\tREFERENCES `" . $constraints['foreignKey'][$name]['tableRef'] . '`';
             $sql .= '(' . $constraints['foreignKey'][$name]['columnsRef'] . ')';
             if (isset($constraints['foreignKey'][$name]['match'])) {
                 $sql .= PHP_EOL . "\t\tMATCH " . $constraints['foreignKey'][$name]['match'];
             }
             if (isset($constraints['foreignKey'][$name]['onDelete'])) {
                 $sql .= PHP_EOL . "\t\tON DELETE " . $constraints['foreignKey'][$name]['onDelete'];
             }
             if (isset($constraints['foreignKey'][$name]['onUpdate'])) {
                 $sql .= PHP_EOL . "\t\tON UPDATE " . $constraints['foreignKey'][$name]['onUpdate'];
             }
         }
     }
     return $sql;
 }
コード例 #3
0
ファイル: Room.php プロジェクト: ZiperRom1/awesomeChatRoom
 /**
  * Get the room basic attributes only
  *
  * @return     array  The room basic attributes only
  */
 public function getRoomBasicAttributes()
 {
     return parent::__toArray();
 }
コード例 #4
0
 /**
  * Set an entity which is already in the collection
  *
  * @param      Entity     $entity  The entity object
  * @param      string     $key     A key to save the entity DEFAULT null (auto generated)
  *
  * @throws     Exception  If the entity id is not already in the collection
  */
 public function set($entity, $key = null)
 {
     $id = $key ?? $this->parseId($entity->getIdValue());
     if (!array_key_exists($id, $this->indexId)) {
         throw new Exception('This entity id(' . static::formatVariable($id) . ') is not already in the collection ' . $this, Exception::$WARNING);
     } else {
         $this->collection[$this->indexId[$id]] = $entity;
     }
 }
コード例 #5
0
ファイル: User.php プロジェクト: ZiperRom1/awesomeChatRoom
 /**
  * Return the user entity in an array format
  *
  * @return     array  Array with all users attributes
  */
 public function __toArray() : array
 {
     $user = parent::__toArray();
     $user['right'] = $this->right !== null ? $this->right->__toArray() : [];
     $user['roomRight'] = $this->roomRight !== null ? $this->roomRight->__toArray() : [];
     return $user;
 }