I. Introduction

Apprenez à utiliser le langage PHP pour développer des sites Web dynamiques grâce, notamment, à l'interaction facile de ce langage avec les bases de données.
Ce langage est idéal pour créer des blogs ou des forums de discussion.
Avec la méthode "Développement Facile", vous allez pouvoir créer des sites Web dynamiques avec du contenu évolutif et une maintenance facilitée.
Retrouvez un extrait de la formation "PHP Facile", composée de plus de 30 cours professionnels pour vous aider à progresser rapidement avec la maîtrise du langage PHP.

II. Découvrez le côté pratique des interfaces en PHP

Encore un concept orienté objet : les interfaces.
Découvrez une présentation des interfaces et de leur utilité.


Ci-dessous, l'exemple de code.

 
Sélectionnez

<?php 
/**

  The Initial Developer of the Original Code is
  Matthieu  - http://www.programmation-facile.com/
  Portions created by the Initial Developer are Copyright (C) 2013
  the Initial Developer. All Rights Reserved.

  Contributor(s) :

 */


/**
 * Définition d'une interface.
 * 
 */
interface read_write
{ 
	// deux méthodes pour accéder à l'objet
	
	/**
	 * Renvoie la valeur
	 * @return [type] [description]
	 */
	public function getValue();


	/**
	 * Met à jour la valeur
	 * @return [type] [description]
	 */
	public function setValue( $sVal );

} 


/**
 * Définition d'une classe qui implémente une interface.
 * La classe FileEdit possède donc toutes les méthodes de l'interface read_write
 * 
 */
class FileEdit implements read_write
{ 
	// la valeur 
	private $sValeur; 


	/**
	 * le constructeur
	 * @param [type] $prenom [description]
	 * @param [type] $nom    [description]
	 */
	public function __construct($valeur)
	{ 
		$this->sValeur = $valeur; 
	} 



	/**
	 * Implémentation de la méthode d'écriture.
	 * @param [type] $valeur [description]
	 */
	public function setValue($valeur)
	{ 
		$this->sValeur = $valeur; 
	} 
	

	/**
	 * Implémentation de la méthode de lecture.
	 * @param [type] $valeur [description]
	 */
	public function getValue()
	{ 
		return $this->sValeur; 
	} 

} 


// Utilisation de la classe fille. 
$objet = new FileEdit("Hello You");
echo $objet->getValue()."<br />";

$objet->setValue("Bonjour"); 
echo $objet->getValue()."<br />"; 

?>

III. À quoi servent les méthodes static en php

Découvrez dans cette vidéo le secret du paramètre static.
À utiliser devant une variable, une constante ou une méthode.


Ci-dessous, l'exemple de code.

 
Sélectionnez

<?php 
/**

  The Initial Developer of the Original Code is
  Matthieu  - http://www.programmation-facile.com/
  Portions created by the Initial Developer are Copyright (C) 2013
  the Initial Developer. All Rights Reserved.

  Contributor(s) :

 */

/**
 * Définition d'une classe.
 */
class Utils
{ 
	// Attribut privé quelconque. 
	private $sValeur; 

	// Attribut privé statique pour stocker le nombre d'objets instanciés. 
	static private $iNombre = 0; 
	static public $iMulti = 10; 
	
	// Constante de classe pour définir une valeur par défaut. 
	const DEFAUT = "NOT_USE"; 
	
	/**
	 * Fonction publique statique qui retourne le nombre d'objets de la classe.
	 * @return [type] [description]
	 */
	static public function getNombreObjects()
	{ 
		return Utils::$iNombre; 
	} 

	/**
	 * Le constructeur
	 *
	 * récupère la valeur de l'attribut (valeur par défaut = la constante de classe) 
	 * incrémente le nombre d'objets 
	 * 
	 */
	public function __construct($valeur = Utils::DEFAUT)
	{ 
		$this->sValeur = $valeur; 
		Utils::$iNombre++; 
		echo "Création de l'objet : ".$this->sValeur."<br />"; 
	}


	/**
	 * Le destructeur.
	 * Appelé lors de l'utilisation d'un unset (libération de mémoire)
	 * 
	 * décrémente le nombre d'objets 
	 * 
	 */
	public function __destruct()
	{ 
		Utils::$iNombre--; 
		echo "Suppression de l'objet : ".$this->sValeur."<br />"; 
	} 
} 

// Crée 2 objets. 
// 
$oVal1 = new Utils(); 
$oVal2 = new Utils ("Matthieu"); 


// Affiche le nombre d'objets 
echo Utils::getNombreObjects()."objet(s) <br /><br />";

// Supprime un objet. 
unset($oVal1); 

// Affiche le nombre d'objets 
echo Utils::getNombreObjects()."objet(s) <br />"; 
echo Utils::$iMulti."objets par defaut <br /><br />";

?>

IV. Personnalisez vos messages d'erreur avec les exceptions en PHP

Gérer les erreurs est un impératif dans tout développement informatique.
Découvrez dans cette vidéo, comment utiliser les exceptions avec le langage PHP et rendre les erreurs compréhensibles pour tous.


Ci-dessous, l'exemple de code.

 
Sélectionnez

<?php 
/**

  The Initial Developer of the Original Code is
  Matthieu  - http://www.programmation-facile.com/
  Portions created by the Initial Developer are Copyright (C) 2013
  the Initial Developer. All Rights Reserved.

  Contributor(s) :

 */


/**
 * Définition d'une classe.
 */
class Utils
{ 
	 
	private $iVal; // Un identifiant


	/**
	 * Le constructeur.
	 * @param [type] $valeur [description]
	 */
	public function __construct($valeur)
	{ 
		$this->iVal = $valeur; 
	} 


	/**
	 * Vérifie la cohérence de la valeur
	 * @return [type] [description]
	 */
	public function verifValue()
	{ 
 
		// si l'identifiant est négatif : une exception est levée. 
		if ($this->iVal < 0)
		{ 
			throw new Exception("identifiant non autorisé", $this->iVal); 
		} 
	} 

} 



// création de 2 objets. 
$objet = new Utils(1); 

// gestion des erreurs
try
{ 
	echo "Objet 1 : "; 
	$objet->verifValue(); // ne va pas lever d'exception 
	echo "OK<br />"; 
}
catch (Exception $oError)
{ 
	echo "ERREUR ".$oError->getCode()." - ".$oError->getMessage()."<br />"; 
} 


$objet = new Utils(-1); 
try
{ 
	echo "Objet -1 : "; 
	$objet->verifValue(); // va créer une exception (identifiant négatif)
	echo "OK<br />"; 
}
catch (Exception $oError)
{ 
	echo "ERREUR ".$oError->getCode()." - ".$oError->getMessage()."<br />"; 
} 


echo "--<br /><br />"; 

// avec un bloc finally. 
$objet = new Utils(10); 
try
{ 
	echo "Objet 10 : "; 
	$objet->verifValue(); // ne va pas lever d'exception 
	echo "OK<br />";
}
catch (Exception $oError)
{ 
	echo "ERREUR ".$oError->getCode()." - ".$oError->getMessage()."<br />"; 
}
finally
{  // exécute le code dans tous les cas (même s'il y a une exception)
	echo "FINALLY<br /><br />"; 
} 


$objet = new Utils(-10); 
try
{ 
	echo "Objet -10 : "; 
	$objet->verifValue(); // va lever une exception 
	echo "OK<br />";
}
catch (Exception $oError)
{ 
	echo "ERREUR ".$oError->getCode()." - ".$oError->getMessage()."<br />"; 
}
finally
{ // exécute le code dans tous les cas (même si il y a une exception)
	echo "FINALLY<br /><br />"; 
} 

?>

V. Comment utiliser les namespace en PHP

Les namespace : à quoi ça sert ? Comment les utiliser ?
Découvrez tout cela dans la vidéo.


Ci-dessous, l'exemple de code.

 
Sélectionnez

<?php 
/**

  The Initial Developer of the Original Code is
  Matthieu  - http://www.programmation-facile.com/
  Portions created by the Initial Developer are Copyright (C) 2013
  the Initial Developer. All Rights Reserved.

  Contributor(s) :

 */

namespace Developpement;

/**
 * Redéfinition d'une fonction php qui existe déjà
 * @return [type] [description]
 */
function strlen()
{
	echo "Eh non je ne calcule pas la longueur d'une chaîne de caractères !<br/><br/>";    
}

strlen();

echo \strlen("Eh non je ne calcule pas la longueur d'une chaîne de caractères !<br/><br/>");// appel de la fonction php

echo "<br/>Eh non, la suite <br/><br/>";

// Définition de l'espace de noms. 
namespace DevFacile; 

// Définition d'une constante. 
const VALEUR = "un"; 

/**
 * Définition d'une classe.
 */
class Infos
{ 
	/**
	 * Une méthode statique
	 * @return [type] [description]
	 */
	static function getInformation()
	{ 
		echo "<br /><br />Librairie<br />"; 
	} 
} 

/**
 * Définition d'une fonction.
 * @return [type] [description]
 */
function showMessage()
{ 
	echo "__FUNCTION__<br />"; 
} 

// Affichage de l'espace de noms courant. 
echo "Espace de noms courant = ".__NAMESPACE__."<br />"; 

// Appel de showMessage() : 
// nom non qualifié = espace de noms courant 
echo "showMessage() = "; 
showMessage(); 

echo "<br/>Par ici<br/><br/>".Infos::getInformation();

use DevFacile\Infos as cl; // alias d'une classe 

echo "namespace<br/>";

$oInstance = new cl; // instanciation d'un objet de la classe Project\com\developpement\uneClasse 

echo "<br/>Par ici alias<br/><br/>".cl::getInformation();

?>

VI. Comment utiliser les cookies pour une zone réservée aux membres avec PHP

Stockez les informations de vos visiteurs grâce aux cookies.
Apprenez à les utiliser en PHP dans cette vidéo.


Ci-dessous, l'exemple de code

 
Sélectionnez

<?php 
/**

  The Initial Developer of the Original Code is
  Matthieu  - http://www.programmation-facile.com/
  Portions created by the Initial Developer are Copyright (C) 2013
  the Initial Developer. All Rights Reserved.

  Contributor(s) :

 */

// création de cookie

// la valeur "Matthieu" et expire à la fin de la session. 
$ok = setcookie("nom", "Matthieu"); 

// Idem mais expire à la date du jour (time() en secondes) dans 30 jours. 
$ok = setcookie("nom", "Matthieu", time()+(30*24*3600)); 

// Suppression du cookie. 
$ok = setcookie("nom"); 

// gestion des sessions avec les cookies

// Tester si la session est ouverte, c'est-à-dire si une variable "session" a été transmise par le cookie. 
if (! isset($_COOKIE["session"]) )
{ 
	// Variable "session" vide = pas de session. 
	// => ouvrir la session. 
	// Pour cet exemple : 
	//    - identifiant de session. 
	$session = md5( uniqid("developpement") ); 
	
	//    - date/heure d'ouverture de la session. 
	$date = date(" \l\e d/m/Y a H:i:s"); 

	// Déposer deux cookies pour stocker ces informations. 
	// Durée de vie = la date du jour (time() en secondes) dans 30 jours. 
	setcookie("session",$session, time()+(30*24*3600) ); 
	setcookie("date",$date, time()+(30*24*3600) ); 

	//    - message. 
	$message = "Nouvelle session : ".$session." ".$date."<br />"; 
}
else
{ 
	// Variable "session" renseignée = session ouverte. 
	// => récupère les informations
	$session = $_COOKIE["session"]; 
	$date = $_COOKIE["date"]; 

	$message = "Session déjà ouverte: ".$session.$date."<br />"; 
} 

echo $message;

// Détermine la date et l'heure actuelle
echo "<br />Nous sommes le ".date("d/m/Y").", il est ".date('H:i:s')."<br /><br />"; 

?>

VII. Comment gérer les erreurs du langage PHP

Apprenez, dans cette vidéo, à traiter les erreurs en PHP.


Ci-dessous, l'exemple de code.

 
Sélectionnez

<?php 
/**

  The Initial Developer of the Original Code is
  Matthieu  - http://www.programmation-facile.com/
  Portions created by the Initial Developer are Copyright (C) 2013
  the Initial Developer. All Rights Reserved.

  Contributor(s) :

 */

// exemple d'erreur fatale
$oFile = fope("/tmp/file_not_exist.txt", "r");// erreur sur l'instruction fopen
$texte = fread($oFile,100); 
fclose($oFile); 

// exemple d'erreur d'alerte
$oFile = fopen("/tmp/file_not_exist.txt", "r");// ouverture d'un fichier qui n'existe pas
$texte = fread($oFile,100); 
fclose($oFile); 

// erreur d'écriture du code php
echo "Hello !<br />"    // manque le point-virgule ! 
echo "Félicitations !<br />"; 

?>

VIII. Recevez gratuitement la formation "PHP Facile"

Si vous souhaitez aller plus loin dans la création de sites Web dynamique,
vous pouvez recevoir gratuitement la formation "PHP Facile" avec des cours pas à pas, accompagnés des codes source commentés.
Ainsi, vous progressez à votre rythme, avec un suivi personnalisé et individuel. Vous avez la possibilité de poser toutes vos questions techniques sous chaque cours.
Vous allez ainsi découvrir comment utiliser le langage PHP et les bases de données MySQL.

Formation PHP Facile !
Cliquez simplement ici pour recevoir gratuitement la formation "PHP Facile" !Cliquez simplement ici pour recevoir gratuitement la Formation PHP Facile !

IX. Remerciements

Merci beaucoup à l'équipe de rédaction de Developpez.com de contribuer à la diffusion de ce tutoriel.
J'adresse également un merci tout particulier à Jacques Jeanjacques_jean pour sa relecture orthographique.