1 votes

Classe et interface abstraites, notamment en PHP

Cette question fait suite à mon précédent post situé aquí .

Comme il n'y a aucun moyen de poster à nouveau l'échantillon de code sans modifier votre message original, je commence un nouveau message. Et aussi, ceci contient du code PHP.

J'écris deux classes, la première pour ouvrir et fermer la connexion à la base de données, et la seconde pour fournir diverses fonctions réutilisables pour l'accès à la base de données.

Voici mon code PHP pour la classe Connection :

<?php
/**
* DBConnection Base Class Definition
*/

/* Include dependency */
require_once("\config\dbconfig.php");

abstract class dbconnection 
{
 var $conn;
 //Opens connection for a MySQL DB
 abstract function OpenConnection()
 {
  $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
     or die($this->ShowError(mysql_error()));
  mysql_select_db(DB_NAME) or die ($this->ShowError("Connection to MySQL Database Failed. "));  
 }

 //Closes connection for a MySQL DB
 abstract function CloseConnection()
 {
  try
  {
   mysql_close($conn);
  }
  catch(exception $ex)
  {
   $this->ShowError($ex);
  }
 }

 protected function ShowError($err)
 {
  echo "<script>alert('Error: ' +". $err .");</script>"; 
 }  
}
?>

Le fichier inclus dans le code ci-dessus contient le code suivant :

<?php
//Modify constants with data needed to access your own database
define('DB_HOST','localhost:3306');
define('DB_NAME','MyStore');
define('DB_USER','super');
define('DB_PASSWORD','****');
?>

Voici maintenant mes questions relatives aux classes abstraites et aux interfaces (suite de mon post précédent) :

(1) Une classe de connexion peut-elle être abstraite ? Les méthodes sont-elles écrites correctement ?
(2) Au lieu de faire du second code un fichier "dbconfig.php", serait-il bon de créer une interface pour celui-ci ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X