Subversion Repositories PHPX

Rev

Rev 68 | Rev 74 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 68 Rev 69
Line 156... Line 156...
156
   *   The configuration array if the configuration
156
   *   The configuration array if the configuration
157
   *   file could be read, <code>false</code> otherwise.
157
   *   file could be read, <code>false</code> otherwise.
158
   */
158
   */
159
  public function readConfig ()
159
  public function readConfig ()
160
  {
160
  {
-
 
161
    /* FIXME: Configuration file path should not be hardcoded */
161
        $config = parse_ini_file('application/.config', true);
162
    $config = parse_ini_file('application/.config', true);
162
        if ($config !== false)
163
    if ($config !== false)
163
        {
164
    {
164
                $section = 'database:' . $this->_dbname;
165
      $section = 'database:' . $this->_dbname;
165
                if (isset($config[$section]))
166
      if (isset($config[$section]))
166
                {
167
      {
167
                        $dbconfig = $config[$section];
168
        $dbconfig = $config[$section];
168
                        $options = array(
169
        $options = array(
169
                    'host', 'port', 'dbname', 'username', 'password', 'charset'
170
          'host', 'port', 'dbname', 'username', 'password', 'charset'
170
                        );
171
        );
171
172
172
                        foreach ($options as $key)
173
        foreach ($options as $key)
173
                        {
174
        {
174
                                $property = "_$key";
175
          $property = "_$key";
175
                                if (isset($dbconfig[$key])
176
          if (isset($dbconfig[$key])
176
                                     && $key == 'dbname'
177
               && ($key == 'dbname'
177
                                                 || (property_exists($this, $property)
178
                   || (property_exists($this, $property)
178
                                                                  && $this->$property === null))
179
                       && $this->$property === null)))
179
                                {
180
          {
180
                                        $this->$property = $dbconfig[$key];
181
            $this->$property = $dbconfig[$key];
181
                                }
182
          }
182
                        }
183
        }
183
-
 
184
                        return $config[$section];
-
 
185
                }
-
 
186
        }
-
 
187
184
-
 
185
        return $config[$section];
-
 
186
      }
-
 
187
    }
-
 
188
188
        return $config;
189
    return $config;
189
  }
190
  }
190
191
191
  /**
192
  /**
192
   * @return PDO
193
   * @return PDO
193
   */
194
   */
Line 259... Line 260...
259
   * @param string $column_name
260
   * @param string $column_name
260
   * @return string
261
   * @return string
261
   */
262
   */
262
  protected function _columnDef (array $data, $column_name)
263
  protected function _columnDef (array $data, $column_name)
263
  {
264
  {
264
        $def = (isset($data['unsigned']) && $data['unsigned'] ? 'UNSIGNED ' : '')
265
    $def = (isset($data['unsigned']) && $data['unsigned'] ? 'UNSIGNED ' : '')
265
                         . $data['type']
266
         . $data['type']
266
                         . (isset($data['not_null']) && $data['not_null'] ? ' NOT NULL'                     : ' NULL')
267
         . (isset($data['not_null']) && $data['not_null'] ? ' NOT NULL'                     : ' NULL')
267
                         . (isset($data['default'])  && $data['default']  ? " DEFAULT {$data['default']}"   : '')
268
         . (isset($data['default'])  && $data['default']  ? " DEFAULT {$data['default']}"   : '')
268
                         . (isset($data['auto_inc']) && $data['auto_inc'] ? ' AUTO_INCREMENT'               : '')
269
         . (isset($data['auto_inc']) && $data['auto_inc'] ? ' AUTO_INCREMENT'               : '')
269
                         . (isset($data['unique'])   && $data['unique']   ? ' UNIQUE KEY'                   : '')
270
         . (isset($data['unique'])   && $data['unique']   ? ' UNIQUE KEY'                   : '')
270
                         . (isset($data['primary'])  && $data['primary']  ? ' PRIMARY KEY'                  : '')
271
         . (isset($data['primary'])  && $data['primary']  ? ' PRIMARY KEY'                  : '')
271
                         . (isset($data['comment'])  && $data['comment']  ? " COMMENT '{$data['comment']}'" : '');
272
         . (isset($data['comment'])  && $data['comment']  ? " COMMENT '{$data['comment']}'" : '');
272
273
273
        return $this->escapeName($column_name) . ' ' . $def;
274
    return $this->escapeName($column_name) . ' ' . $def;
274
  }
275
  }
275
276
276
  /**
277
  /**
277
   * Creates a database table according to the specified parameters
278
   * Creates a database table according to the specified parameters
278
   *
279
   *
Line 283... Line 284...
283
   * @return bool
284
   * @return bool
284
   * @see PDOStatement::execute()
285
   * @see PDOStatement::execute()
285
   */
286
   */
286
  public function createTable ($name, array $columns, array $options = null)
287
  public function createTable ($name, array $columns, array $options = null)
287
  {
288
  {
288
        $class = \get_class($this);
289
    $class = \get_class($this);
289
        $query = 'CREATE TABLE '
290
    $query = 'CREATE TABLE '
290
          . $this->escapeName($name)
291
      . $this->escapeName($name)
291
          . '('
292
      . '('
292
          . array_map(array($this, '_columnDef'), $columns, array_keys($columns)) . ')';
293
      . array_map(array($this, '_columnDef'), $columns, array_keys($columns)) . ')';
293
294
294
        $stmt = $this->prepare($query);
295
    $stmt = $this->prepare($query);
295
296
296
        /* DEBUG */
297
    /* DEBUG */
297
    if (defined('DEBUG') && DEBUG > 1)
298
    if (defined('DEBUG') && DEBUG > 1)
298
    {
299
    {
299
      debug(array(
300
      debug(array(
300
        'query'  => $query,
301
        'query'  => $query,
301
      ));
302
      ));
Line 637... Line 638...
637
638
638
    /* DEBUG */
639
    /* DEBUG */
639
    if (defined('DEBUG') && DEBUG > 1)
640
    if (defined('DEBUG') && DEBUG > 1)
640
    {
641
    {
641
      debug(array(
642
      debug(array(
642
        'query'  => $query,
643
        'query'  => $query,
643
        'params' => $params
644
        'params' => $params
644
      ));
645
      ));
645
    }
646
    }
646
647
647
    $success =& $this->_lastSuccess;
648
    $success =& $this->_lastSuccess;
648
    $success =  $stmt->execute($params);
649
    $success =  $stmt->execute($params);