learen more with autoformation

jeudi 9 octobre 2014

Utilisation des classes et des objets

Notre classe est maintenant prêt mais aucune utilisation tout seul. Comme nous l'avons expliqué ci-dessus, une classe est considéré comme un moule capable d'effectuer autant d'objets de même type et la même structure que celle désirée. Nous présentons maintenant la phase de réalisation d'une classe.

Instanciation d'une classe

L'instanciation d'une classe est la phase de création des objets issus de cette classe. Lorsque l'on instancie une classe, on utilise le mot-clé new suivant du nom de la classe. Cette instruction appelle la méthode constructeur ( __construct() ) qui construit l'objet et le place en mémoire. Voici un exemple qui illustre 4 instances différentes de la classes Personne.
Un objet est en fait une variable dont le type est la classe qui est instanciée. 
Création d'objets de type Personne
<?php
$personne1 = new Personne();
$personne2 = new Personne();
$personne3 = new Personne();
$personne4 = new Personne();
Remarque: Si nous avons défini les paramètres dans le constructeur de notre méthode de classe, nous devrions les avoir dans les parenthèses indiquent la durée de la procédure. Par exemple: $ person1 = new Personne ("Hamon», «Hugo»);

Accès aux attributs

Accès en écriture
Nous avons créé quatre objets de même type et la même structure. En l'état actuel, ils sont des clones parce que leurs attributs sont déclarés mais non initialisées. Nous attribuons à chacune de ces valeurs aux attributs de chaque objet.
Utilisation des attributs d'un objet
<?php
// Définition des attributs de la personne 1
$personne1->nom = 'Hamon';
$personne1->prenom = 'Hugo';
$personne1->dateDeNaissance = '02-07-1987';
$personne1->taille = '180';
$personne1->sexe = 'M';
// Définition des attributs de la personne 2
$personne2->nom = 'Dubois';
$personne2->prenom = 'Michelle';
$personne2->dateDeNaissance = '18-11-1968';
$personne2->taille = '166';
$personne2->sexe = 'F';
// Définition des attributs de la personne 3
$personne3->nom = 'Durand';
$personne3->prenom = 'Béatrice';
$personne3->dateDeNaissance = '02-08-1975';
$personne3->taille = '160';
$personne3->sexe = 'F';
// Définition des attributs de la personne 4
$personne4->nom = 'Martin';
$personne4->prenom = 'Pierre';
$personne4->dateDeNaissance = '23-05-1993';
$personne4->taille = '155';
$personne4->sexe = 'M';
Nous avons maintenant des objets ayant chacun des caractèristiques différentes.
Dans notre exemple, nous accèdons directement à la valeur de l'attribut. Cela est possible car nous avons défini l'attribut comme étant public. Si nous avions déclaré l'attribut avec les mots-clés private ouprotected, nous aurions du utiliser un autre mécanisme pour accéder à sa valeur ou bien la mettre à jour. Nous verrons cela dans un prochain cours.
Accès en lecture
La lecture de la valeur d'un attribut d'un objet se fait exactement de la même manière que pour une variable traditionnel. Le code suivant montre comment afficher le nom complet de la personne 1.
Affichage du nom et du prénom de la personne 1
<?php
echo 'Personne 1 :<br/><br/>';
echo 'Nom : ', $personne1->nom ,'<br/>';
echo 'Prénom : ', $personne1->prenom;
L'exécution de ce programme produit le résultat suivant sur la sortie standard :
Résultat d'exécution du code
Personne 1 :
Nom : Hamon
Prénom : Hugo
On 04:25 by مشاهير العرب in , ,    No comments
Nous avons défini le langage spécifique de programmation orientée objet. Vous entrez maintenant dans le vif du sujet, à savoir la déclaration et instanciation d'une classe. Nous allons déclarer une classe Person qui sera ensuite nous permettre de créer autant d'instances (objets) de cette classe que nous voulons.

                          Syntaxe de déclaration d'une classe

Le code suivant montre une manière de déclarer et de structurer convenablement une classe. Nous vous conseillons fortement de suivre ces conventions d'écriture
.<?php
class NomDeMaClasse
{
// Attributs
// Constantes
// Méthodes
}
?>
 <?phpclass Personne
{
// Attributs
public $nom;
public $prenom;
public $dateDeNaissance;
public $taille;
public $sexe;
// Constantes
const NOMBRE_DE_BRAS = 2;
const NOMBRE_DE_JAMBES = 2;
const NOMBRE_DE_YEUX = 2;
const NOMBRE_DE_PIEDS = 2;
const NOMBRE_DE_MAINS = 2;
// Méthodes
public function __construct() { }
public function boire()
{
echo 'La personne boit<br/>';
}
public function manger()
{
echo 'La personne mange<br/>';
}
}

mardi 7 octobre 2014

On 16:46 by مشاهير العرب in    No comments
conexion-php5Classe connexion de gestion simplifiée de MySQL en PHP5. Cette classe a sa propre gestion des erreurs. Il revient exceptions MySQLException genre.

Portion de code
<?php
  /**
  * Gestion des erreurs avec les exeptions
  */
  class MySQLExeption  extends Exception
  {
    public function __construct($Msg) {
      parent :: __construct($Msg);
    }
    public function RetourneErreur() {
      $msg  = '<div><strong>' . $this->getMessage() . '</strong>';
      $msg .= ' Ligne : ' . $this->getLine() . '</div>';
      return $msg;
    }
  }
?>
<?php
  class Mysql
  {
    private
      $Serveur     = '',
      $Bdd         = '',
      $Identifiant = '',
      $Mdp         = '',
      $Lien        = '',
      $Debogue     = true,
      $NbRequetes  = 0;
    /**
    * Constructeur de la classe
    * Connexion aux serveur de base de donnée et sélection de la base
    *
    * $Serveur     = L'hôte (ordinateur sur lequel Mysql est installé)
    * $Bdd         = Le nom de la base de données
    * $Identifiant = Le nom d'utilisateur
    * $Mdp         = Le mot de passe
    */
    public function __construct($Serveur = 'localhost', $Bdd = 'base', $Identifiant = 'root', $Mdp = '')
    {
      $this->Serveur     = $Serveur;
      $this->Bdd         = $Bdd;
      $this->Identifiant = $Identifiant;
      $this->Mdp         = $Mdp;
      $this->Lien=mysql_connect($this->Serveur, $this->Identifiant, $this->Mdp);
      if(!$this->Lien && $this->Debogue)
        throw new MySQLExeption('Erreur de connexion au serveur MySql!!!');
      $Base = mysql_select_db($this->Bdd,$this->Lien);
      if (!$Base && $this->Debogue)
        throw new MySQLExeption('Erreur de connexion à la base de donnees!!!');
    }
    /**
    * Retourne le nombre de requêtes SQL effectué par l'objet
    */
    public function RetourneNbRequetes()
    {
      return $this->NbRequetes;
    }
    /**
    * Envoie une requête SQL et récupère le résultât dans un tableau pré formaté
    *
    * $Requete = Requête SQL
    */
    public function TabResSQL($Requete)
    {
      $i = 0;
      $Ressource = mysql_query($Requete,$this->Lien);
      $TabResultat=array();
      if (!$Ressource and $this->Debogue) throw new MySQLExeption('Erreur de requête SQL!!!');
      while ($Ligne = mysql_fetch_assoc($Ressource))
      {
        foreach ($Ligne as $clef => $valeur) $TabResultat[$i][$clef] = $valeur;
        $i++;
      }
      mysql_free_result($Ressource);
      $this->NbRequetes++;
      return $TabResultat;
    }
    /**
    * Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT
    *
    */
    public function DernierId()
    {
        return mysql_insert_id($this->Lien);
    }
    /**
    * Envoie une requête SQL et retourne le nombre de table affecté
    *
    * $Requete = Requête SQL
    */
    public function ExecuteSQL($Requete)
    {
      $Ressource = mysql_query($Requete,$this->Lien);
      if (!$Ressource and $this->Debogue) throw new MySQLExeption('Erreur de requête SQL!!!');
      $this->NbRequetes++;
      $NbAffectee = mysql_affected_rows();
      return $NbAffectee;
    }
  }
?>
<?php
  /**
  * Utilisation de la classe
  */
  try
  {
    $Mysql = new Mysql('localhost', 'base', 'login', 'password');
    $Resulats = $Mysql->TabResSQL('SELECT Champ1,Champ2 FROM table');
    foreach ($Resulats as $Valeur)
    {
      echo $Valeur['Champ1'];
      echo $Valeur['Champ2'];
    }
  }
  catch (MySQLExeption $e)
  {
    echo $e -> RetourneErreur();
  }
?>
On 16:36 by مشاهير العرب   No comments
Trait Example From ZF2

namespace Zend\EventManager;
trait ProvidesEvents
{
public function setEventManager(EventManagerInterface $events)
{
$identifiers = array(__CLASS__, get_called_class());
$events->setIdentifiers($identifiers);
$this->events = $events;
return $this;
}
public function getEventManager()
{
if (!$this->events instanceof EventManagerInterface) {
$this->setEventManager(new EventManager());
}
return $this->events;
}
}