PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Cyril Ogana   PHP DBAL Wrapper   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Auxiliary data
Class: PHP DBAL Wrapper
Establish database connections with Doctrine DBAL
Author: By
Last change: Upgrade to doctrine DBAL 2.9+
Date: 4 years ago
Size: 3,629 bytes
 

Contents

Class file image Download

DB

Description

Light Wrapper around Docrines DBAL to handle management of configuration settings for various database types

Installing

Install application via Composer

require "cymapgt/db": "1.*"

Usage

The DB package is built for building database connection settings for various database types supported by Doctrine DBAL

Overview

  • DB is a singleton, which is common pattern used for database connection classes
  • DB is designed to pick DB connection settings from environment variables, but can also take a parameter of database connection settings
  • All the Public Methods of the DB package are static
  • NB: Storing database parameters in environment variable needs careful considerations Security considerations are needed to ensure that they are only accessible to the web server user. If this method is not viable in your scenario, you may use the alternative method that accepts the DB connect settings as an array.

Getters and Setters

Setting The Database Type

DB::setDbType('mysql');

Replace mysql with either of the following: oracle, mssql, sqlite, sybase, drizzle, postgres

Getting The Database Type of a Connection

DB::getDbType();

Get Database Parameters

DB::getDatabaseParameters();

Return an array of the database parameters stored in the web server / operating system environment. The array is an associative array whose indices vary depending on the database type. Database configuration array keys match the Doctrine DBAL database connection settings listed on the documentation for DBAL (http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html).

An example for MySQL is the array would contain user, password, host, port, dbname, driver, unix_socket and charset indices.

Quality Check on the Configuration Settings

Validating Configuration Settings

DB::validateDbParameters($dbParams);

Accepts an array of the DB parameters. It then does two checks. It ensures that the driver which DBAL will use for the database is actually loaded. It then checks that any of the default settings any of the various databases DBAL can load are present in the array. If any of the two checks fails a cymapgt\Exception\DBException will be thrown.

DB::sanitizeDbParameters($dbParams);

Accepts an array of the DB parameters. Some of the DB connection settings are optional e.g. the charset in mysql. This method discards empty configurations prior to the DB connection being instantiated.

Making DB connection and returning a DBAL instance

Connecting from Environment Settings

//dbObj is an instance of DBAL loading your favourite DB . You can make your queries
$dbObj = DB::connectDb();

Connecting with an Array of config settings

DB::setDbType('mysql');

//define settings in array
$mysqlSettings = array (
 'user' => 'cr7',
 'password' => 'valdebas',
 'host' => 'localhost',
 'port' => '3306',
 'dbname' => 'undecima'
);

//return dbal instance with the mysql dbl loaded
$dbObj = DB::connectDbNew($mysqlSettings);

Closing Database Connections

//Part of resource management and ensuring sensitive information is discarded is destroying resources after use
DB::closeDbConnection();

Testing

DB Tests are provided with the package. SQLITE db is used in the testsuite.

Contribute

  • Email @rhossis or contact via Skype
  • Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
  • You will be added as author for contributions ... duh :)

License

BSD 3 CLAUSE