Connessione ad un Database: Medoo e un piccolo Wrap

16 Apr 2019 | M.A.D.R.

Utilizzare correttamente la Connessione ad un Database spesso può risultare più difficile di quanto si creda.

Infatti oggi parliamo di una libreria capace di soddisfare tutte le esigenze, dal neofita al programmatore avanzato, Medoo.in un tool per la connessione ai Database.

Parlando di Medoo la prima cosa da fare è installare da composer e/o installare manualmente la nostra Libreria.

  • Tramite composer: "composer require catfan/medoo"
  • Tramite download: "scaricare e posizione in una directory la libreria per richiamarla"

Medoo ha già tutto quello che ci serve, ma possiamo migliorarne la creazione della connessione attraverso l'uso di una nostra libreria, per gestire più di un database.

La classe che si occupa di estendere Medoo è davvero minimale, infatti ha solo 2 metodi pubblici, di cui uno statico per creare una nuova connessione ad-hoc.

Come si utilizza?

In 2 modi differenti, personalmente preferisco la seconda!

$conn=Database::conn();
$conn->select();
//oppure
Database::conn()->select('test','*',['id'=>10]);

Possiamo passare al costruttore dei parametri opzionali per la creazione di una nuova connessione ad un DB diverso rispetto a quello configurato dalla nostra Classe Database...

Buon Lavoro a tutti.

/**
 * Copyright (c) 2019. Licenza Open Source - public domine
 * Il codice di questo file è reso disponibile secondo le regole vigente e con licenza d'uso PD.
 * Il codice riportato è un programma di cui codice sorgente è reso disponibile completo di tutte le sue
 * funzionalità e può essere modificato secondo le proprie esigenze.
 * Qualora il codice risultasse copiato su altri portali senza citarne la fonte saranno applicate tutte le
 * disposizioni in materia di Proprietà Intellettuale.
 */

/**
 * Created by phpS
 * User: macus_adi
 * Project Name: Database
 * File: Database.php
 * Path: root/DB/Database.php
 * Date: 19/02/2019
 * Time: 08:37
 */

class Database extends \Medoo\Medoo {


	public $query='';

	public $where=[];

	public $join=[];

	public $table='';

	public $result='object';

	protected $host='localhost';

	protected $user='root';

	protected $passwd='toor';

	protected $dbname='test';

	protected $port=3306;

	protected $conn;

	public $is_debug=false;

	public $error=[];



	public function __construct($options=[]) {
		if(!empty($options)){
			foreach ($options as $k=>$v){
				if(property_exists($this,$k))$this->$k=$v;
			}
		}
		$this->conn=parent::__construct($this->get_config());
		return $this;
	}

	public static function conn($options=[]){
		return (new Database($options));
	}


	private function get_config(){
		return [
			'database_type' => 'mysql',
			'database_name' => $this->dbname,
			'server' => $this->host,
			'username' => $this->user,
			'password' => $this->passwd,
			'port' => $this->port,
		];
	}

}

Soluzioni complete per ogni esigenza