Algorithmique et bases de la programmation PHP
PROGRAM MakeACupOfTea:
Organise everything together;
Plug in kettle;
Put teabag in cup;
WHILE (Kettle is not full)
DO keep filling kettle;
ENDWHILE;
Wait for kettle to boil;
Add water to cup;
Remove teabag with spoon/fork;
Add milk;
IF (sugar is required)
THEN add sugar;
ELSE do nothing;
ENDIF;
Serve;
END.
Les algorigrammes / Flow chart
https://openclassrooms.com/courses/introduction-aux-algorigrammes
Pseudo-code
SI Condition1ALORS Traitement1
SINON SI Condition2ALORS Traitement2
SINON SI Condition3ALORS Traitement3
SINON Traitement4
PROGRAMME DEBUT{
ENTREE_CONSOLE _variable_ Nom_Utilisateur_variable_ Nb_Lettres = compteLettres->_Nom_UtilisateurSI (Nb_Lettres > 10)
SORTIE_CONSOLE "Votre nom est long"SINON
SORTIE_CONSOLE "Votre nom est court"}FIN
http://www.wikihow.com/Write-Pseudocode
Exemple d’implémentation
Pseudo-Code
public boolean moveRobot (Robot aRobot)
{
//IF robot has no obstacle in front THEN
// Call Move robot
// Add the move command to the command history
// RETURN true
//ELSE
// RETURN false without moving the robot
//END IF
}
Java Implementation
public boolean moveRobot (Robot aRobot)
{
if (aRobot.isFrontClear())
{
aRobot.move();
cmdHistory.add(RobotAction.MOVE);
return true;
}
else
{
return false;
}
}
Modèle client serveur
Le client et le serveur- Le Serveur : C'est l'ordinateur qui héberge le site web, sur lequel sont installés plusieurs programmes, permettant de
traiter des sites web (Apache, PHP et MySQL principalement).
- Le Client : C'est vous, avec votre ordinateur personnel, relié à ce serveur, via Internet ou un réseau local, et qui utilisez un navigateur web (Firefox par exemple) pour lire les pages web.
Modèle client serveur
PHP (Hypertext Preprocessor) est un langage de scripts, généraliste et open source, spécialement conçu pour le développement d'applications web. Les applications web PHP sont hébergées sur un serveur web. Elles sont appelées par un client qui est en général un navigateur web, utilisé pour surfer sur Internet. Les scripts PHP sont exécutés côté serveur, à l'inverse des scripts JavaScript par exemple, qui sont exécutés côté client (i.e. le navigateur web).
En clair, cela veut donc dire que lorsqu'un utilisateur qui surfe sur le web arrive sur une page dont l'extension est .php : 1.une requête est envoyée au serveur web sur lequel est hébergé le site pour qu'il renvoie la page souhaitée ; 2.le code PHP que la page contient est exécuté par le serveur web sur lequel est hébergé le site, ce qui a pour résultat de générer du code HTML ; 3.le code HTML ainsi produit est envoyé au navigateur web de l'utilisateur ; 4.le navigateur web affiche la page en interprétant le code HTML obtenu. La figure ci-dessous illustre ce principe.
Modèle client serveur
http://romainlebreton.github.io/ProgWeb-CoteServeur/assets/tut1-complement.html
Qu’est-ce que le HTTP ?L’HyperText Transfer Protocol est un protocole de communication entre un client et un serveur développé pour le Web. L’une de ses fonctions principales est ainsi de récupérer des pages Web.La requête HTTP la plus courante est la requête GET.
Qu’est-ce qu’un serveur HTTP ?Un serveur HTTP est un logiciel qui répond à des requêtes HTTP. Il est souvent associé au port 80 de la machine hôte.
Où intervient le PHP ?Un module PHP (mod_php5) est intégré au serveur HTTP Apache. Quand le serveur Web reçoit une requête d’un fichier .php, il génère dynamiquement la page Web en exécutant le code PHP de la page. La page généré est ensuite renvoyée dans la réponse HTTP.C’est ce que l’on appelle une page dynamique.
Organisation du code php
Un fichier HTML (suffixe .html) ne peut pas contenir de scripts PHP. A l'inverse, un fichier PHP (suffixe .php) peut contenir à la fois du code HTML et du code PHP. Quand il est correctement configuré (ce qui doit être le cas de votre installation à l'aide de XAMPP), le serveur web Apache reconnaît automatiquement les fichiers dont l'extension est .php comme des pages PHP à interpréter. Ainsi, lorsque l'on essaie d'afficher une page dont l'extension est .php avec un navigateur web, le serveur web sur lequel se trouve cette page détecte qu'il doit d'abord interpréter la page PHP avant de répondre à la requête du navigateur web. Ce que l'on voit alors s'afficher dans le navigateur est le résultat de l'interprétation du code PHP par le serveur, c'est-à-dire du HTML. Ainsi, on utilise l'extension .php quand la page contient du code PHP afin qu'Apache appelle l'interpréteur PHP pour exécuter les scripts qu'elle contient, tandis qu'on utilise l'extension .html uniquement lorsque la page est complètement statique, c'est-à-dire ne contient pas de scripts PHP.
Dans un fichier PHP, seul le code entre les balises <?php et ?> est interprété comme étant du PHP.Tout le reste sera affiché sans modifications (notamment le code HTML qui est alors interprété par le navigateur web !). L'indentation du code est importante, non pour l'ordinateur qui l'exécute, mais pour l'humain qui doit le comprendre ; pensez donc à la respecter.
Pensez également à commenter soigneusement votre code.les commentaires en HTML se font comme suit: <--! Commentaire -->, et en CSS il faut débuter le commentaire par /* et le terminer par */. En PHP ils se placent après // s'il n'y a pas de retour à la ligne; si l'on veut commenter plus de choses, on débutera le commentaire par /* et on le terminera par */.
Exemple de scripts:
Basic php
Tutoriels :
http://www.wikihow.com/Write-PHP-Scripts
https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/premiers-pas-avec-php
http://sandbox.onlinephpfunctions.com/
Les variables
Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois types: •scalaires •tableaux •tableaux associatifs
Quelque soit le type de variable, son nom doit obligatoirement être précédé du caractère dollar ($).
http://www.commentcamarche.net/contents/804-php-les-variables
Les types de données
http://php.net/manual/fr/function.gettype.php
Les constantes
Les opérateurs
Les structures de controle
• Les conditionnelles
• if else elseif• switch case
• Les itératives
• while• do while• for• foreach
• Les ruptures
• break• continue
Les structures de controle
elseif while ¶
Les structures de controle
for
Les structures de controle
foreach
Les fonctions
concepts de la programmation orientée objet
https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php
Classes et héritage
Les classes et les objets
• Une classe est un ensemble de propriétés et de méthodes.
• Une classe est définie par la syntaxe suivante :
class exClass {var $p1;var $p2;function exClass () {}
}
• Un objet est instancié par l’instruction new :
obj = new exClass ();obj->p1 = ‘TEST’;
• Une Class peut-être enrichie par héritage :
class exFilleClass extends exClass {}
• Un objet peut se référencer par l’objet $this.
Formulaires et transmission de données
https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/transmettre-des-donnees-avec-les-formulaires
Traitement des données de formulaires
Accès aux bases de données en PHP
http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059
class PDOFactoryException extends Exception{}class PDOFactory{public static function getMysqlConnexion(){$db = new PDO('mysql:host=localhost;dbname=EJCAM', 'root', '');$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $db;
} }$db=PDOFactory::getMysqlConnexion();$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//tester que votre connecteur DB est fonctionnel. Par exemple utilisez le pour afficher le meilleur temps par étape :
try{ $db->beginTransaction();$resultats=$db->query("SELECT `IdEtape`,min(`TempsRealise`) as top FROM `temps`group by `IdEtape` ");$resultats->setFetchMode(PDO::FETCH_OBJ);while( $resultat = $resultats->fetch() )
{echo 'etape : '.$resultat->IdEtape.'<br>';
echo 'meilleur temps : '.$resultat->top.'<br>';}$resultats->closeCursor(); $db->commit();
}catch(Exception $e) { $db->rollback(); echo 'Tout ne s\'est pas bien passé, voir les erreurs ci-dessous<br />';echo 'Erreur : '.$e->getMessage().'<br />';echo 'N° : '.$e->getCode(); exit();
}