[ Index ]
 

Code source de PHP PEAR 1.4.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/docs/MDB/doc/ -> Modules_Manager_skeleton.php (source)

   1  <?php
   2  // +----------------------------------------------------------------------+
   3  // | PHP Version 4                                                        |
   4  // +----------------------------------------------------------------------+
   5  // | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox,                 |
   6  // | Stig. S. Bakken, Lukas Smith                                         |
   7  // | All rights reserved.                                                 |
   8  // +----------------------------------------------------------------------+
   9  // | MDB is a merge of PEAR DB and Metabases that provides a unified DB   |
  10  // | API as well as database abstraction for PHP applications.            |
  11  // | This LICENSE is in the BSD license style.                            |
  12  // |                                                                      |
  13  // | Redistribution and use in source and binary forms, with or without   |
  14  // | modification, are permitted provided that the following conditions   |
  15  // | are met:                                                             |
  16  // |                                                                      |
  17  // | Redistributions of source code must retain the above copyright       |
  18  // | notice, this list of conditions and the following disclaimer.        |
  19  // |                                                                      |
  20  // | Redistributions in binary form must reproduce the above copyright    |
  21  // | notice, this list of conditions and the following disclaimer in the  |
  22  // | documentation and/or other materials provided with the distribution. |
  23  // |                                                                      |
  24  // | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
  25  // | Lukas Smith nor the names of his contributors may be used to endorse |
  26  // | or promote products derived from this software without specific prior|
  27  // | written permission.                                                  |
  28  // |                                                                      |
  29  // | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
  30  // | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
  31  // | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
  32  // | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
  33  // | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
  34  // | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
  35  // | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
  36  // |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
  37  // | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
  38  // | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
  39  // | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
  40  // | POSSIBILITY OF SUCH DAMAGE.                                          |
  41  // +----------------------------------------------------------------------+
  42  // | Author: YOUR NAME <YOUR EMAIL>                                       |
  43  // +----------------------------------------------------------------------+
  44  //
  45  // $Id: Modules_Manager_skeleton.php,v 1.5.4.1 2004/01/08 13:43:05 lsmith Exp $
  46  //
  47  
  48  // This is just a skeleton MDB driver.
  49  
  50  // In each of the listed methods I have added comments that tell you where
  51  // to look for a "reference" implementation.
  52  // Many of the methods below are taken from Metabase. Most of the methods
  53  // marked as "new in MDB" are actually taken from the latest beta files of
  54  // Metabase. However these beta files only include a version for MySQL.
  55  // Some of these methods have been expanded or changed slightly in MDB.
  56  // Looking in the relevant MDB Wrapper should give you some pointers, some
  57  // other difference you will only discover by looking at one of the existing
  58  // MDB driver or the common implementation in common.php.
  59  // One thing that will definately have to be modified in all "reference"
  60  // implementations of Metabase methods is the error handling.
  61  // Anyways don't worry if you are having problems: Lukas Smith is here to help!
  62  
  63  if(!defined('MDB_MANAGER_XXX_INCLUDED'))
  64  {
  65      define('MDB_MANAGER_XXX_INCLUDED',1);
  66  
  67  require_once ('MDB/Modules/Manager/Common.php');
  68  
  69  /**
  70   * MDB Xxx driver for the management modules
  71   *
  72   * @package MDB
  73   * @category Database
  74   * @author  YOUR NAME <YOUR EMAIL>
  75   */
  76  class MDB_Manager_xxx_ extends MDB_Manager_Common
  77  {
  78      // }}}
  79      // {{{ createDatabase()
  80  
  81      /**
  82       * create a new database
  83       *
  84       * @param object    $dbs        database object that is extended by this class
  85       * @param string $name name of the database that should be created
  86       * @return mixed MDB_OK on success, a MDB error on failure
  87       * @access public
  88       */
  89      function createDatabase(&$db, $name)
  90      {
  91          // take this from the corresponding Metabase driver: CreateDatabase()
  92      }
  93  
  94      // }}}
  95      // {{{ dropDatabase()
  96  
  97      /**
  98       * drop an existing database
  99       *
 100       * @param object    $dbs        database object that is extended by this class
 101       * @param string $name name of the database that should be dropped
 102       * @return mixed MDB_OK on success, a MDB error on failure
 103       * @access public
 104       */
 105      function dropDatabase(&$db, $name)
 106      {
 107          // take this from the corresponding Metabase driver: DropDatabase()
 108      }
 109  
 110      // }}}
 111      // {{{ createTable()
 112  
 113      /**
 114       * create a new table
 115       *
 116       * @param object    $dbs        database object that is extended by this class
 117       * @param string $name     Name of the database that should be created
 118       * @param array $fields Associative array that contains the definition of each field of the new table
 119       *                        The indexes of the array entries are the names of the fields of the table an
 120       *                        the array entry values are associative arrays like those that are meant to be
 121       *                         passed with the field definitions to get[Type]Declaration() functions.
 122       *
 123       *                        Example
 124       *                        array(
 125       *
 126       *                            'id' => array(
 127       *                                'type' => 'integer',
 128       *                                'unsigned' => 1
 129       *                                'notnull' => 1
 130       *                                'default' => 0
 131       *                            ),
 132       *                            'name' => array(
 133       *                                'type' => 'text',
 134       *                                'length' => 12
 135       *                            ),
 136       *                            'password' => array(
 137       *                                'type' => 'text',
 138       *                                'length' => 12
 139       *                            )
 140       *                        );
 141       * @return mixed MDB_OK on success, a MDB error on failure
 142       * @access public
 143       */
 144      function createTable(&$db, $name, $fields)
 145      {
 146          // take this from the corresponding Metabase driver: CreateTable()
 147      }
 148  
 149      // }}}
 150      // {{{ alterTable()
 151  
 152      /**
 153       * alter an existing table
 154       *
 155       * @param object    $dbs        database object that is extended by this class
 156       * @param string $name         name of the table that is intended to be changed.
 157       * @param array $changes     associative array that contains the details of each type
 158       *                             of change that is intended to be performed. The types of
 159       *                             changes that are currently supported are defined as follows:
 160       *
 161       *                             name
 162       *
 163       *                                New name for the table.
 164       *
 165       *                            AddedFields
 166       *
 167       *                                Associative array with the names of fields to be added as
 168       *                                 indexes of the array. The value of each entry of the array
 169       *                                 should be set to another associative array with the properties
 170       *                                 of the fields to be added. The properties of the fields should
 171       *                                 be the same as defined by the Metabase parser.
 172       *
 173       *                                Additionally, there should be an entry named Declaration that
 174       *                                 is expected to contain the portion of the field declaration already
 175       *                                 in DBMS specific SQL code as it is used in the CREATE TABLE statement.
 176       *
 177       *                            RemovedFields
 178       *
 179       *                                Associative array with the names of fields to be removed as indexes
 180       *                                 of the array. Currently the values assigned to each entry are ignored.
 181       *                                 An empty array should be used for future compatibility.
 182       *
 183       *                            RenamedFields
 184       *
 185       *                                Associative array with the names of fields to be renamed as indexes
 186       *                                 of the array. The value of each entry of the array should be set to
 187       *                                 another associative array with the entry named name with the new
 188       *                                 field name and the entry named Declaration that is expected to contain
 189       *                                 the portion of the field declaration already in DBMS specific SQL code
 190       *                                 as it is used in the CREATE TABLE statement.
 191       *
 192       *                            ChangedFields
 193       *
 194       *                                Associative array with the names of the fields to be changed as indexes
 195       *                                 of the array. Keep in mind that if it is intended to change either the
 196       *                                 name of a field and any other properties, the ChangedFields array entries
 197       *                                 should have the new names of the fields as array indexes.
 198       *
 199       *                                The value of each entry of the array should be set to another associative
 200       *                                 array with the properties of the fields to that are meant to be changed as
 201       *                                 array entries. These entries should be assigned to the new values of the
 202       *                                 respective properties. The properties of the fields should be the same
 203       *                                 as defined by the Metabase parser.
 204       *
 205       *                                If the default property is meant to be added, removed or changed, there
 206       *                                 should also be an entry with index ChangedDefault assigned to 1. Similarly,
 207       *                                 if the notnull constraint is to be added or removed, there should also be
 208       *                                 an entry with index ChangedNotNull assigned to 1.
 209       *
 210       *                                Additionally, there should be an entry named Declaration that is expected
 211       *                                 to contain the portion of the field changed declaration already in DBMS
 212       *                                 specific SQL code as it is used in the CREATE TABLE statement.
 213       *                            Example
 214       *                                array(
 215       *                                    'name' => 'userlist',
 216       *                                    'AddedFields' => array(
 217       *                                        'quota' => array(
 218       *                                            'type' => 'integer',
 219       *                                            'unsigned' => 1
 220       *                                            'Declaration' => 'quota INT'
 221       *                                        )
 222       *                                    ),
 223       *                                    'RemovedFields' => array(
 224       *                                        'file_limit' => array(),
 225       *                                        'time_limit' => array()
 226       *                                        ),
 227       *                                    'ChangedFields' => array(
 228       *                                        'gender' => array(
 229       *                                            'default' => 'M',
 230       *                                            'ChangeDefault' => 1,
 231       *                                            'Declaration' => "gender CHAR(1) DEFAULT 'M'"
 232       *                                        )
 233       *                                    ),
 234       *                                    'RenamedFields' => array(
 235       *                                        'sex' => array(
 236       *                                            'name' => 'gender',
 237       *                                            'Declaration' => "gender CHAR(1) DEFAULT 'M'"
 238       *                                        )
 239       *                                    )
 240       *                                )
 241       *
 242       * @param boolean $check     indicates whether the function should just check if the DBMS driver
 243       *                             can perform the requested table alterations if the value is true or
 244       *                             actually perform them otherwise.
 245       * @access public
 246       *
 247        * @return mixed MDB_OK on success, a MDB error on failure
 248       */
 249      function alterTable(&$db, $name, $changes, $check)
 250      {
 251          // take this from the corresponding Metabase driver: AlterTable()
 252      }
 253  
 254      // }}}
 255      // {{{ listDatabases()
 256  
 257      /**
 258       * list all databases
 259       *
 260       * @param object    $dbs        database object that is extended by this class
 261       * @return mixed data array on success, a MDB error on failure
 262       * @access public
 263       */
 264      function listDatabases(&$db)
 265      {
 266          // new in MDB
 267      }
 268  
 269      // }}}
 270      // {{{ listUsers()
 271  
 272      /**
 273       * list all users
 274       *
 275       * @param object    $dbs        database object that is extended by this class
 276       * @return mixed data array on success, a MDB error on failure
 277       * @access public
 278       */
 279      function listUsers(&$db)
 280      {
 281          // new in MDB
 282      }
 283  
 284      // }}}
 285      // {{{ listTables()
 286  
 287      /**
 288       * list all tables in the current database
 289       *
 290       * @param object    $dbs        database object that is extended by this class
 291       * @return mixed data array on success, a MDB error on failure
 292       * @access public
 293       */
 294      function listTables(&$db)
 295      {
 296          // new in MDB
 297      }
 298  
 299      // }}}
 300      // {{{ listTableFields()
 301  
 302      /**
 303       * list all fields in a tables in the current database
 304       *
 305       * @param object    $dbs        database object that is extended by this class
 306       * @param string $table name of table that should be used in method
 307       * @return mixed data array on success, a MDB error on failure
 308       * @access public
 309       */
 310      function listTableFields(&$db, $table)
 311      {
 312          // new in MDB
 313      }
 314  
 315      // }}}
 316      // {{{ getTableFieldDefinition()
 317  
 318      /**
 319       * get the stucture of a field into an array
 320       *
 321       * @param object    $dbs        database object that is extended by this class
 322       * @param string    $table         name of table that should be used in method
 323       * @param string    $field_name     name of field that should be used in method
 324       * @return mixed data array on success, a MDB error on failure
 325       * @access public
 326       */
 327      function getTableFieldDefinition(&$db, $table, $field_name)
 328      {
 329          // new in MDB
 330      }
 331  
 332      // }}}
 333      // {{{ createIndex()
 334  
 335      /**
 336       * get the stucture of a field into an array
 337       *
 338       * @param object    $dbs        database object that is extended by this class
 339       * @param string    $table         name of the table on which the index is to be created
 340       * @param string    $name         name of the index to be created
 341       * @param array     $definition        associative array that defines properties of the index to be created.
 342       *                                 Currently, only one property named FIELDS is supported. This property
 343       *                                 is also an associative with the names of the index fields as array
 344       *                                 indexes. Each entry of this array is set to another type of associative
 345       *                                 array that specifies properties of the index that are specific to
 346       *                                 each field.
 347       *
 348       *                                Currently, only the sorting property is supported. It should be used
 349       *                                 to define the sorting direction of the index. It may be set to either
 350       *                                 ascending or descending.
 351       *
 352       *                                Not all DBMS support index sorting direction configuration. The DBMS
 353       *                                 drivers of those that do not support it ignore this property. Use the
 354       *                                 function support() to determine whether the DBMS driver can manage indexes.
 355  
 356       *                                 Example
 357       *                                    array(
 358       *                                        'FIELDS' => array(
 359       *                                            'user_name' => array(
 360       *                                                'sorting' => 'ascending'
 361       *                                            ),
 362       *                                            'last_login' => array()
 363       *                                        )
 364       *                                    )
 365       * @return mixed MDB_OK on success, a MDB error on failure
 366       * @access public
 367       */
 368      function createIndex(&$db, $table, $name, $definition)
 369      {
 370          // take this from the corresponding Metabase driver: CreateIndex()
 371      }
 372  
 373      // }}}
 374      // {{{ dropIndex()
 375  
 376      /**
 377       * drop existing index
 378       *
 379       * @param object    $dbs        database object that is extended by this class
 380       * @param string    $table         name of table that should be used in method
 381       * @param string    $name         name of the index to be dropped
 382       * @return mixed MDB_OK on success, a MDB error on failure
 383       * @access public
 384       */
 385      function dropIndex(&$db, $table, $name)
 386      {
 387          // take this from the corresponding Metabase driver: DropIndex()
 388      }
 389  
 390      // }}}
 391      // {{{ listTableIndexes()
 392  
 393      /**
 394       * list all indexes in a table
 395       *
 396       * @param object    $dbs        database object that is extended by this class
 397       * @param string    $table      name of table that should be used in method
 398       * @return mixed data array on success, a MDB error on failure
 399       * @access public
 400       */
 401      function listTableIndexes(&$db, $table)
 402      {
 403          // new in MDB
 404      }
 405  
 406      // }}}
 407      // {{{ getTableIndexDefinition()
 408  
 409      /**
 410       * get the stucture of an index into an array
 411       *
 412       * @param object    $dbs        database object that is extended by this class
 413       * @param string    $table      name of table that should be used in method
 414       * @param string    $index_name name of index that should be used in method
 415       * @return mixed data array on success, a MDB error on failure
 416       * @access public
 417       */
 418      function getTableIndexDefinition(&$db, $table, $index_name)
 419      {
 420          // new in MDB
 421      }
 422  
 423      // }}}
 424      // {{{ createSequence()
 425  
 426      /**
 427       * create sequence
 428       *
 429       * @param object    $dbs        database object that is extended by this class
 430       * @param string    $seq_name     name of the sequence to be created
 431       * @param string    $start         start value of the sequence; default is 1
 432       * @return mixed MDB_OK on success, a MDB error on failure
 433       * @access public
 434       */
 435      function createSequence(&$db, $seq_name, $start)
 436      {
 437          // take this from the corresponding Metabase driver: CreateSequence()
 438      }
 439  
 440      // }}}
 441      // {{{ dropSequence()
 442  
 443      /**
 444       * drop existing sequence
 445       *
 446       * @param object    $dbs        database object that is extended by this class
 447       * @param string    $seq_name     name of the sequence to be dropped
 448       * @return mixed MDB_OK on success, a MDB error on failure
 449       * @access public
 450       */
 451      function dropSequence(&$db, $seq_name)
 452      {
 453          // take this from the corresponding Metabase driver: DropSequence()
 454      }
 455  
 456      // }}}
 457      // {{{ listSequences()
 458  
 459      /**
 460       * list all sequences in the current database
 461       *
 462       * @param object    $dbs        database object that is extended by this class
 463       * @return mixed data array on success, a MDB error on failure
 464       * @access public
 465       */
 466      function listSequences(&$db)
 467      {
 468          // new in MDB
 469      }
 470  
 471      // }}}
 472      // {{{ getSequenceDefinition()
 473  
 474      /**
 475       * get the stucture of a sequence into an array
 476       *
 477       * @param object    $dbs        database object that is extended by this class
 478       * @param string    $sequence   name of sequence that should be used in method
 479       * @return mixed data array on success, a MDB error on failure
 480       * @access public
 481       */
 482      function getSequenceDefinition(&$db, $sequence)
 483      {
 484          // new in MDB
 485      }
 486  }
 487  
 488  }
 489  ?>


Généré le : Sun Feb 25 14:08:00 2007 par Balluche grâce à PHPXref 0.7