Login   Register  
PHP Classes
elePHPant
Icontem

File: Xyndravandria/Dyverath/Dyverath.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Mauro Di Girolamo  >  Xyndravandria Dyverath  >  Xyndravandria/Dyverath/Dyverath.php  >  Download  
File: Xyndravandria/Dyverath/Dyverath.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Xyndravandria Dyverath
Compose and execute MySQL database queries
Author: By
Last change:
Date: 2013-06-06 06:20
Size: 5,573 bytes
 

Contents

Class file image Download
<?php
/*
=============================================================================================================================================
|   This file is part of a project released under the terms of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt).                 |
|                                                                                                                                           |
|   You should be given a copy of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt) within the same directory as the README.md;   |
|   if not, you can get a copy at http://Xyndravandria.ohost.de/XyndravandriaPHPLicense.txt .                                               |
|                                                                                                                                           |
|   The copyright (c) of this project is owned by Mauro Di Girolamo <maurodigirolamo@.web.de>.                                              |
============================================================================================================================================|



Xyndravandria Dyverath
----------------------
Alpha 0.0.0

Xyndravandria is the name of a collection of projects designed and developed by Mauro Di Girolamo (maurodigirolamo@web.de); he is therefore the copyright (c) owner of Xyndravandria itself and all of its projects.

Xyndravandria Dyverath is released under the terms of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt). You should be given a copy of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt) within the same directory as the README.md; if not, you can get a copy at http://Xyndravandria.ohost.de/XyndravandriaPHPLicense.txt . There might be a release under a freer license for a later, more stable version.

The documentation is either included in ./admin_media/Documentation/ or can be read at http://Xyndravandria.ohost.de/Dyverath/Documentation/.

All projects:

   Xyndravandria Averazain
   http://github.com/MauroDiGirolamo/Xyndravandria_Averazain
   PHP
   Averazain is an Ajax framework supporting also JavaScript disabled clients perfectly - including search engines like Google.
   
   Xyndravandria Dyverath
   http://github.com/MauroDiGirolamo/Xyndravandria_Dyverath
   PHP
   Dyverath is a database access wrapper.
   
   Xyndravandria Erozaver
   http://github.com/MauroDiGirolamo/Xyndravandria_Erozaver
   PHP
   Erozaver is a class extending the type hinting given by the PHP engine (additional support for basic type hinting and size constraints).
   
   Xyndravandria Mondraviel
   http://github.com/MauroDiGirolamo/Xyndravandria_Mondraviel
   PHP
   Mondraviel is a class used to separate HTML from PHP code by firstly register models - files containing place holders embedded in HTML code - and then later fill them dynamically with content by passing values for the place holders.
*/

namespace Xyndravandria\Dyverath;

use 
Xyndravandria\Dyverath\Server;

// TODO: GROUP BY.
// TODO: Thing about enabling settype( ) again.
// TODO: Disable caching an test the Current( ) methods.
/// @ref Dyverath "Dyverath's" main class.
/// @abstract
abstract class Dyverath {
   
   
/// Used to select MySQL as the database system type.
   
const Type_MySQL 1;

   
/// Opens a connection to a new Server and returns it.
   /// @public
   /// @static
   /// @param string $Host: The MySQL server.
   /// @param string $User: The user name.
   /// @param string $Password: The password.
   /// @param integer $Type: The database system type.
   /// @param string $UniqueName: The unique name of the
   /// server.
   /// @returns Server
   /// @note $Type is an optional parameter.
   /// Dyverath::Type_MySQL is its value. @n
   /// Also, $UniqueName is an optional parameter and
   /// should only be passed if you have two @ref Server
   /// "Servers" on the same host, since the host is used
   /// as the unique name of a Server by default.
   
public static function Connect$Host$User$Password$Type self::Type_MySQL$UniqueName '' ) {
      
//\settype( $Host, 'string' );
      //\settype( $User, 'string' );
      //\settype( $Password, 'string' );
      //\settype( $Type, 'integer' );
      //\settype( $UniqueName, 'string' );
      
$UniqueName == '' && $UniqueName $Host;
      if( 
$Type != self::Type_MySQL )
         throw new 
XyndravandriaDyverathException'Only MySQL is currently supported.' );
      else if( 
self::Server$UniqueName ) != null )
         throw new 
XyndravandriaDyverathException'Given unique name \'' $UniqueName '\' already exists.' );
      else if( ! ( 
$Connection = \mysql_connect$Host$User$Password ) ) )
         throw new 
XyndravandriaDyverathException'Could not connect to MySQL server: ' . \mysql_error( ) );
      else {
         
$Server = new Server$UniqueName$Connection );
         if( 
Server::Configuration( ) & Server::CacheEnabled && ! Server::Cache( )->Get$Server->UniqueIdentifier( ) ) )
            return 
Server::Cache( )->Add$Server );
         else
            return 
$Server;
      }
      return;
   }

   
/// Gets a Server from the Cache by its unique name.
   /// @public
   /// @static
   /// @param string $UniqueName: The unique name of the
   /// Server.
   /// @returns Server or null
   /// @note A @ref Server "Server's" host is used as its
   /// unique name by default.
   
public static function Server$UniqueName ) {
      
//\settype( $UniqueName, 'string' );
      
return Server::Cache( )->Get$UniqueName );
   }

}
?>