PHP Classes

File: Xyndravandria/Dyverath/Dyverath.php

Recommend this page to a friend!
  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: 11 years ago
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 );
   }

}
?>