SlideShare una empresa de Scribd logo
1 de 17
PHP 5 pour les développeurs Java
Mehdi EL KRARI
●

Doctorant à l'université Mohammed V – Agdal
–

●

#Métaheuristiques #TSP #ILS #VNS

Freelancer WEB

elkrari

2 mars 2014

PHP 5 pour les développeurs Java

2
Classe & Attributs...
<?php
class Etudiant
{
  private $_matricule ;
  private $_nom ;
  private $_prenom ;
  private $_moyenne ;
}
?>

class Etudiant
{
  private int matricule ;
  private String nom ;
  private String prenom ;
  private float moyenne ;
}

La notation PEAR (dans PHP) :
[¤]Chaque nom d'élément privé (attributs ou méthodes) doit être précédé
d'un underscore (' _ ').
[¤]Le nom des classes commences par une majuscule.
2 mars 2014

PHP 5 pour les développeurs Java

3
Méthodes
<?php
class Etudiant
{
// déclaration des attributs
        
  public function mention() 
  {
  }     
  public function estAdmis() 
  {
  }
}
?>
2 mars 2014

class Etudiant
{
// déclaration des attributs
        
  public String mention() 
  {
  }     
  public boolean estAdmis() 
  {
  }       
}

PHP 5 pour les développeurs Java

4
Accesseurs (Getters)
<?php
class Etudiant
{
// déclaration des attributs    
  public function matricule()
  {
    return $this->_matricule;
  }     
  public function nom()
  {
    return $this->_nom;
  }    
  public function moyenne()
  {
    return $this->_moyenne;
  }
}
?>
2 mars 2014

class Etudiant
{
// déclaration des attributs    
  public int getMatricule()
  {
    return this.matricule;
  }
  public String getNom()
  {
    return this.nom;
  }    
  public float getMoyenne()
  {
    return this.moyenne;
  }
}
PHP 5 pour les développeurs Java

5
Mutateurs (Setters)
<?php
class Etudiant
{
//déclaration des attributs
public function setMatricule($matricule)
{
$this->_matricule = $matricule;
}
public function setNom($nom)
{
$this->_nom = $nom;
}
public function setMoyenne($moyenne)
{
$this->_moyenne = $moyenne;
}
}
?>
2 mars 2014

class Etudiant
{
//déclaration des attributs
public void setMatricule(int matricule)
{
this.matricule = matricule;
}
public void setNom(String nom)
{
$this.nom = nom;
}
public void setMoyenne(float moyenne)
{
$this.moyenne = moyenne;
}
}

PHP 5 pour les développeurs Java

6
Constructeurs
<?php
class Etudiant
{
  private $_matricule;
  private $_nom;
  private $_prenom;
  private $_moyenne;

class Etudiant
{
  private int matricule;
  private String nom;
  private String prenom;
  private float moyenne;

  public function __construct($nom, $prenom) 
  {
    $this->_$nom= $nom; 
    $this->_$prenom= $prenom; 
    $this->_moyenne= 10; // Initialisation de la
moyenne à 10.
  }
  
}
?>
2 mars 2014

  public Etudiant(String nom,String prenom) 
  {
    this.nom= nom; 
    this.prenom= prenom; 
    this.moyenne= 10; // Initialisation de la
moyenne à 10.
  }
  
}

PHP 5 pour les développeurs Java

7
Instanciation
<?php
$etudiant = new Etudiant() ;

Etudiant etudiant = new Etudiant() ;

$etudiant0 = new Etudiant ;

Etudiant etudiant1 = new
Etudiant('NOM', 'Prenom');

$etudiant1 = new Etudiant('NOM', 'Prenom');
?>

Si la classe n'implémente pas de constructeur ou si le constructeur ne requiert
aucun argument, les parenthèses placées après le nom de la classe lorsqu'on
l'instanciera seront optionnelles. Ainsi, on pourra faire $etudiant = new Etudiant;

2 mars 2014

PHP 5 pour les développeurs Java

8
Auto-chargement de classes (Auto-load)
<?php
function chargerClasse($classe)
{
require $classe . '.class.php'; // On
inclut la classe correspondante au
paramètre passé.
}
spl_autoload_register('chargerClasse'); // On
enregistre la fonction en autoload pour
qu'elle soit appelée dès qu'on instanciera
une classe non déclarée.

L'auto-chargement de classes
n'existe
pas
sur
le
Kit
de
développement Java . Néanmoins, les
environnements de développement
integré (Eclipse,Netbeans,...) signalent
l'absence de classes ou packages et
proposent de rajouter les « import »
manquants si leurs accessibilités le
permet.

$perso = new Etudiant();
?>

2 mars 2014

PHP 5 pour les développeurs Java

9
Constantes de classe
<?php
class Etudiant
{
  private $_matricule;
  private $_nom;
  private $_prenom;
  private $_moyenne;
// Déclarations des constantes en rapport avec
la moyenne.
const PASSABLE = 10;
const ASSEZ_BIEN = 12;
const BIEN = 14;
}
?>

class Etudiant
{
  private int matricule;
  private String nom;
  private String prenom;
  private float moyenne;
// Déclarations des constantes en rapport avec
la moyenne.
public static final float PASSABLE = 10;
public static final float ASSEZ_BIEN = 12;
public static final float BIEN = 14;
}

<?php
$etudiant = new Etudiant;
$etudiant->setMoyenne(Etudiant::ASSEZ_BIEN);
?>

Etudiant etudiant = new Etudiant();
etudiant.setMoyenne(Etudiant.ASSEZ_BIEN);

2 mars 2014

PHP 5 pour les développeurs Java

10
Méthodes statiques
<?php
class Etudiant
{
// déclaration des attributs    

class Etudiant
{
// déclaration des attributs    

public static function message()
{
echo 'Bonjour étudiant(e)';
}

public static void message()
{
System.out.println('Bonjour étudiant(e)');
}

}
?>

}

<?php
Etudiant::message();
$etudiant = new Etudiant(Etudiant::BIEN);
$etudiant->message();
?>
2 mars 2014

Etudiant.message();
Etudiant etudiant = new Etudiant(Etudiant.BIEN);
etudiant.message();

PHP 5 pour les développeurs Java

11
Attributs statiques
<?php
class Etudiant
{
  private $_matricule;
  private $_nom;
  private $_prenom;
  private $_moyenne;

class Etudiant
{
  private int matricule;
  private String nom;
  private String prenom;
  private float moyenne;

private static $_msg = 'Bonjour étudiant(e)';

private static String msg = 'Bonjour
étudiant(e)';

public static function message()
{
echo self::$_msg;
}

public static function message()
{
System.out.print(msg);
//System.out.print(Etudiant.msg);
}

}
?>
}
2 mars 2014

PHP 5 pour les développeurs Java

12
Managers
<?php
class EtudiantManager
{
private $_db; // Instance de PDO.

1/2

}
public function getList()
{
// Retourne la liste de tous les personnages.

}
public function update(Etudiant $etud)
{

// Préparation de la requête d'insertion.
// Assignation des valeurs pour le nom, la force, les dégâts,
l'expérience et le niveau du personnage.
// Exécution de la requête.

}
public function delete(Etudiant $etud)
{
}
2 mars 2014

2/2

// Exécute une requête de type SELECT avec une clause
WHERE, et retourne un objet Personnage.

public function __construct($db)
{
$this->setDb($db);
}
public function add(Etudiant $etud)
{

// Exécute une requête de type DELETE.

public function get($id)
{

// Prépare une requête de type UPDATE.
// Assignation des valeurs à la requête.
// Exécution de la requête.

}
public function setDb(PDO $db)
{
$this->_db = $db;
}
}
?>

PHP 5 pour les développeurs Java

13
Managers(add)
public function add(Etudiant $etud)
{
$q = $this->_db->prepare('INSERT INTO personnages SET nom = :nom, prenom = :prenom, matricule
= :matricule, moyenne = :moyenne');
$q->bindValue(':nom', $etud->nom());
$q->bindValue(':prenom', $etud->prenom(), PDO::PARAM_INT);
$q->bindValue(':matricule', $etud->matricule(), PDO::PARAM_INT);
$q->bindValue(':moyenne', $etud->moyenne(), PDO::PARAM_INT);
$q->execute();
}

2 mars 2014

PHP 5 pour les développeurs Java

14
Managers(delete, get)
public function delete(Etudiant $etud)
{
$this->_db->exec('DELETE FROM personnages WHERE id = '.$etud->id());
}
public function get($id)
{
$id = (int) $id;
$q = $this->_db->query('SELECT id, nom, prenom, matricule, moyenne FROM personnages WHERE id
= '.$id);
$donnees = $q->fetch(PDO::FETCH_ASSOC);
return new Personnage($donnees);
}

2 mars 2014

PHP 5 pour les développeurs Java

15
Managers(getList)
public function getList()
{
$etuds = array();
$q = $this->_db->query('SELECT id, nom, prenom, matricule, moyenne FROM personnages ORDER BY
nom');
while ($donnees = $q->fetch(PDO::FETCH_ASSOC))
{
$etuds[] = new Personnage($donnees);
}
return $etuds;
}

2 mars 2014

PHP 5 pour les développeurs Java

16
Managers(update)
public function update(Etudiant $etud)
{
$q = $this->_db->prepare('UPDATE personnages SET prenom = :prenom, matricule = :matricule,
moyenne = :moyenne WHERE id = :id');
$q->bindValue(':prenom', $etud->prenom(), PDO::PARAM_INT);
$q->bindValue(':matricule', $etud->matricule(), PDO::PARAM_INT);
$q->bindValue(':moyenne', $etud->moyenne(), PDO::PARAM_INT);
$q->bindValue(':id', $etud->id(), PDO::PARAM_INT);
$q->execute();
}

2 mars 2014

PHP 5 pour les développeurs Java

17

Más contenido relacionado

La actualidad más candente

Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIJihenHedhli1
 
Introduction java
Introduction javaIntroduction java
Introduction javaFouad Root
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro javaAmel Morchdi
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetkemenaran
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Laurent BUNIET
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAAymen Bedwivski
 
Hibernate : comment déclarer une entité avec les annotations ?
Hibernate : comment déclarer une entité avec les annotations ?Hibernate : comment déclarer une entité avec les annotations ?
Hibernate : comment déclarer une entité avec les annotations ?ProfLibre
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
[Hibernate] Contexte de persistance et flushing
[Hibernate] Contexte de persistance et flushing[Hibernate] Contexte de persistance et flushing
[Hibernate] Contexte de persistance et flushingProfLibre
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcabderrahim marzouk
 

La actualidad más candente (20)

Langage C#
Langage C#Langage C#
Langage C#
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
Introduction java
Introduction javaIntroduction java
Introduction java
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro java
 
Cours c++
Cours c++Cours c++
Cours c++
 
Csharp2014
Csharp2014Csharp2014
Csharp2014
 
Cours java
Cours javaCours java
Cours java
 
Language java
Language javaLanguage java
Language java
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 
Hibernate : comment déclarer une entité avec les annotations ?
Hibernate : comment déclarer une entité avec les annotations ?Hibernate : comment déclarer une entité avec les annotations ?
Hibernate : comment déclarer une entité avec les annotations ?
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
[Hibernate] Contexte de persistance et flushing
[Hibernate] Contexte de persistance et flushing[Hibernate] Contexte de persistance et flushing
[Hibernate] Contexte de persistance et flushing
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
 

Destacado

Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epitaNoel GUILBERT
 
Introduction à Laravel 4 @Dogstudio
Introduction à Laravel 4 @DogstudioIntroduction à Laravel 4 @Dogstudio
Introduction à Laravel 4 @DogstudioNicolas Widart
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP NextSQLI
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigAbdelkader Rhouati
 
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Abdelkader Rhouati
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesAbdelkader Rhouati
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleAbdelkader Rhouati
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5halleck45
 
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...Alphorm
 

Destacado (15)

Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
PHP 5 et la programmation objet
PHP 5 et la programmation objetPHP 5 et la programmation objet
PHP 5 et la programmation objet
 
Php
PhpPhp
Php
 
Introduction à Laravel 4 @Dogstudio
Introduction à Laravel 4 @DogstudioIntroduction à Laravel 4 @Dogstudio
Introduction à Laravel 4 @Dogstudio
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
 
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulaires
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5
 
Php 5.3
Php 5.3Php 5.3
Php 5.3
 
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 

Similar a PHP 5 pour les développeurs Java

Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHPMickael Perraud
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentationjulien pauli
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afupJulien Vinber
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Engineor
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Fabien Potencier
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech daysJean-Pierre Vincent
 
Héritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieHéritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieMohammedAmineELHARCH1
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptMicrosoft Technet France
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Mickael Perraud
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)Arnaud Langlade
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratiqueFrederic Hardy
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetMohammed Jaafar
 

Similar a PHP 5 pour les développeurs Java (20)

Php Data Object
Php Data ObjectPhp Data Object
Php Data Object
 
Zf2 ce-qui-va-changer
Zf2 ce-qui-va-changerZf2 ce-qui-va-changer
Zf2 ce-qui-va-changer
 
Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHP
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
Client base de données en PHP5
Client base de données en PHP5Client base de données en PHP5
Client base de données en PHP5
 
Héritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieHéritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierie
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScript
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratique
 
Syntaxe du langage PHP
Syntaxe du langage PHPSyntaxe du langage PHP
Syntaxe du langage PHP
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté Objet
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Playing With PHP 5.3
Playing With PHP 5.3Playing With PHP 5.3
Playing With PHP 5.3
 

PHP 5 pour les développeurs Java

  • 1. PHP 5 pour les développeurs Java
  • 2. Mehdi EL KRARI ● Doctorant à l'université Mohammed V – Agdal – ● #Métaheuristiques #TSP #ILS #VNS Freelancer WEB elkrari 2 mars 2014 PHP 5 pour les développeurs Java 2
  • 3. Classe & Attributs... <?php class Etudiant {   private $_matricule ;   private $_nom ;   private $_prenom ;   private $_moyenne ; } ?> class Etudiant {   private int matricule ;   private String nom ;   private String prenom ;   private float moyenne ; } La notation PEAR (dans PHP) : [¤]Chaque nom d'élément privé (attributs ou méthodes) doit être précédé d'un underscore (' _ '). [¤]Le nom des classes commences par une majuscule. 2 mars 2014 PHP 5 pour les développeurs Java 3
  • 4. Méthodes <?php class Etudiant { // déclaration des attributs            public function mention()    {   }        public function estAdmis()    {   } } ?> 2 mars 2014 class Etudiant { // déclaration des attributs            public String mention()    {   }        public boolean estAdmis()    {   }        } PHP 5 pour les développeurs Java 4
  • 5. Accesseurs (Getters) <?php class Etudiant { // déclaration des attributs       public function matricule()   {     return $this->_matricule;   }        public function nom()   {     return $this->_nom;   }       public function moyenne()   {     return $this->_moyenne;   } } ?> 2 mars 2014 class Etudiant { // déclaration des attributs       public int getMatricule()   {     return this.matricule;   }   public String getNom()   {     return this.nom;   }       public float getMoyenne()   {     return this.moyenne;   } } PHP 5 pour les développeurs Java 5
  • 6. Mutateurs (Setters) <?php class Etudiant { //déclaration des attributs public function setMatricule($matricule) { $this->_matricule = $matricule; } public function setNom($nom) { $this->_nom = $nom; } public function setMoyenne($moyenne) { $this->_moyenne = $moyenne; } } ?> 2 mars 2014 class Etudiant { //déclaration des attributs public void setMatricule(int matricule) { this.matricule = matricule; } public void setNom(String nom) { $this.nom = nom; } public void setMoyenne(float moyenne) { $this.moyenne = moyenne; } } PHP 5 pour les développeurs Java 6
  • 7. Constructeurs <?php class Etudiant {   private $_matricule;   private $_nom;   private $_prenom;   private $_moyenne; class Etudiant {   private int matricule;   private String nom;   private String prenom;   private float moyenne;   public function __construct($nom, $prenom)    {     $this->_$nom= $nom;      $this->_$prenom= $prenom;      $this->_moyenne= 10; // Initialisation de la moyenne à 10.   }    } ?> 2 mars 2014   public Etudiant(String nom,String prenom)    {     this.nom= nom;      this.prenom= prenom;      this.moyenne= 10; // Initialisation de la moyenne à 10.   }    } PHP 5 pour les développeurs Java 7
  • 8. Instanciation <?php $etudiant = new Etudiant() ; Etudiant etudiant = new Etudiant() ; $etudiant0 = new Etudiant ; Etudiant etudiant1 = new Etudiant('NOM', 'Prenom'); $etudiant1 = new Etudiant('NOM', 'Prenom'); ?> Si la classe n'implémente pas de constructeur ou si le constructeur ne requiert aucun argument, les parenthèses placées après le nom de la classe lorsqu'on l'instanciera seront optionnelles. Ainsi, on pourra faire $etudiant = new Etudiant; 2 mars 2014 PHP 5 pour les développeurs Java 8
  • 9. Auto-chargement de classes (Auto-load) <?php function chargerClasse($classe) { require $classe . '.class.php'; // On inclut la classe correspondante au paramètre passé. } spl_autoload_register('chargerClasse'); // On enregistre la fonction en autoload pour qu'elle soit appelée dès qu'on instanciera une classe non déclarée. L'auto-chargement de classes n'existe pas sur le Kit de développement Java . Néanmoins, les environnements de développement integré (Eclipse,Netbeans,...) signalent l'absence de classes ou packages et proposent de rajouter les « import » manquants si leurs accessibilités le permet. $perso = new Etudiant(); ?> 2 mars 2014 PHP 5 pour les développeurs Java 9
  • 10. Constantes de classe <?php class Etudiant {   private $_matricule;   private $_nom;   private $_prenom;   private $_moyenne; // Déclarations des constantes en rapport avec la moyenne. const PASSABLE = 10; const ASSEZ_BIEN = 12; const BIEN = 14; } ?> class Etudiant {   private int matricule;   private String nom;   private String prenom;   private float moyenne; // Déclarations des constantes en rapport avec la moyenne. public static final float PASSABLE = 10; public static final float ASSEZ_BIEN = 12; public static final float BIEN = 14; } <?php $etudiant = new Etudiant; $etudiant->setMoyenne(Etudiant::ASSEZ_BIEN); ?> Etudiant etudiant = new Etudiant(); etudiant.setMoyenne(Etudiant.ASSEZ_BIEN); 2 mars 2014 PHP 5 pour les développeurs Java 10
  • 11. Méthodes statiques <?php class Etudiant { // déclaration des attributs     class Etudiant { // déclaration des attributs     public static function message() { echo 'Bonjour étudiant(e)'; } public static void message() { System.out.println('Bonjour étudiant(e)'); } } ?> } <?php Etudiant::message(); $etudiant = new Etudiant(Etudiant::BIEN); $etudiant->message(); ?> 2 mars 2014 Etudiant.message(); Etudiant etudiant = new Etudiant(Etudiant.BIEN); etudiant.message(); PHP 5 pour les développeurs Java 11
  • 12. Attributs statiques <?php class Etudiant {   private $_matricule;   private $_nom;   private $_prenom;   private $_moyenne; class Etudiant {   private int matricule;   private String nom;   private String prenom;   private float moyenne; private static $_msg = 'Bonjour étudiant(e)'; private static String msg = 'Bonjour étudiant(e)'; public static function message() { echo self::$_msg; } public static function message() { System.out.print(msg); //System.out.print(Etudiant.msg); } } ?> } 2 mars 2014 PHP 5 pour les développeurs Java 12
  • 13. Managers <?php class EtudiantManager { private $_db; // Instance de PDO. 1/2 } public function getList() { // Retourne la liste de tous les personnages. } public function update(Etudiant $etud) { // Préparation de la requête d'insertion. // Assignation des valeurs pour le nom, la force, les dégâts, l'expérience et le niveau du personnage. // Exécution de la requête. } public function delete(Etudiant $etud) { } 2 mars 2014 2/2 // Exécute une requête de type SELECT avec une clause WHERE, et retourne un objet Personnage. public function __construct($db) { $this->setDb($db); } public function add(Etudiant $etud) { // Exécute une requête de type DELETE. public function get($id) { // Prépare une requête de type UPDATE. // Assignation des valeurs à la requête. // Exécution de la requête. } public function setDb(PDO $db) { $this->_db = $db; } } ?> PHP 5 pour les développeurs Java 13
  • 14. Managers(add) public function add(Etudiant $etud) { $q = $this->_db->prepare('INSERT INTO personnages SET nom = :nom, prenom = :prenom, matricule = :matricule, moyenne = :moyenne'); $q->bindValue(':nom', $etud->nom()); $q->bindValue(':prenom', $etud->prenom(), PDO::PARAM_INT); $q->bindValue(':matricule', $etud->matricule(), PDO::PARAM_INT); $q->bindValue(':moyenne', $etud->moyenne(), PDO::PARAM_INT); $q->execute(); } 2 mars 2014 PHP 5 pour les développeurs Java 14
  • 15. Managers(delete, get) public function delete(Etudiant $etud) { $this->_db->exec('DELETE FROM personnages WHERE id = '.$etud->id()); } public function get($id) { $id = (int) $id; $q = $this->_db->query('SELECT id, nom, prenom, matricule, moyenne FROM personnages WHERE id = '.$id); $donnees = $q->fetch(PDO::FETCH_ASSOC); return new Personnage($donnees); } 2 mars 2014 PHP 5 pour les développeurs Java 15
  • 16. Managers(getList) public function getList() { $etuds = array(); $q = $this->_db->query('SELECT id, nom, prenom, matricule, moyenne FROM personnages ORDER BY nom'); while ($donnees = $q->fetch(PDO::FETCH_ASSOC)) { $etuds[] = new Personnage($donnees); } return $etuds; } 2 mars 2014 PHP 5 pour les développeurs Java 16
  • 17. Managers(update) public function update(Etudiant $etud) { $q = $this->_db->prepare('UPDATE personnages SET prenom = :prenom, matricule = :matricule, moyenne = :moyenne WHERE id = :id'); $q->bindValue(':prenom', $etud->prenom(), PDO::PARAM_INT); $q->bindValue(':matricule', $etud->matricule(), PDO::PARAM_INT); $q->bindValue(':moyenne', $etud->moyenne(), PDO::PARAM_INT); $q->bindValue(':id', $etud->id(), PDO::PARAM_INT); $q->execute(); } 2 mars 2014 PHP 5 pour les développeurs Java 17