<?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 <[email protected]>.                                              | 
============================================================================================================================================| 
 
 
 
Xyndravandria Dyverath 
---------------------- 
Alpha 0.0.0 
 
Xyndravandria is the name of a collection of projects designed and developed by Mauro Di Girolamo ([email protected]); 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 ); 
   } 
 
} 
?> 
 
 |