Programmation PHP/PEAR
Qu'est-ce que PEAR ?
, acronyme de PHP Extension and Application Repository, est un framework PHP libre issu d'un groupe de développeurs qui proposent des extensions PHP en garantissant un code de qualité. La liste complète des extensions est téléchargeable gratuitement sur le site officiel.
Pour l'installer le framework, il y a quatre solutions :
DB.
L'extension PEAR DB fournit une gamme de fonctions de gestion de base de données permettant d'utiliser le même code quel que soit la base de données. Cela permet, si vous décidez de changer de BDD de ne pas être obligé de modifier de nouveau tous vos scripts. Un simple changement de variable vous permettra de passer de MySQL à Oracle par exemple.
Elle n'est plus maintenue depuis 2015, ce qui offre un inconvénient par rapport à PEAR MDB2.
Connexion à la base.
Se connecter à une base de données revêt la syntaxe suivante :
require_once('DB.php'); // Indispensable
$dbType = "mysql";
$host = "127.0.0.1";
$account = "Mon_Compte";
$pass = "Mon_Mot_de_passe";
$dbName = "Ma_Base";
$dsn = "$dbType://$account:$pass@$host/$dbName";
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
 echo "Erreur : ".$db->getMessage();
Il est également possible de remplacer la chaîne de caractères par un tableau contenant vos informations :
$dsn = array(
 'phptype' => 'mysql',
 'username' => 'myAccount',
 'password' => '****',
 'hostspec' => '127.0.0.1',
 'database' => 'tests',
Vous êtes donc connectés à votre base de données. Il s'agit maintenant d'effectuer des opérations avec celle-ci.
Fermeture de la connexion.
Il est important de fermer votre connexion une fois vos opérations terminées pour augmenter la sécurité de votre code, réduisant les risques d'atteinte à vos données par un individu mal intentionné.
Voici donc le code détruisant la connexion :
$db->disconnect();
Envoyer une requête.
Une fois connecté, vous allez pouvoir envoyer des requêtes à votre BDD comme suit :
$query = "SELECT * FROM table WHERE id=5";
$rsc = $db->query($query);
Récupérer des informations.
Comme avec n'importe quelle base de données, vous aurez à récupérer le résultat de votre requête. Voici une fonction équivalente de codice_3 :
$query = "SELECT * FROM table WHERE id=5";
$rsc = $db->query($query);
if ( DB::isError($rsc) )
die($rsc->getMessage());
while($result = $rsc->fetchRow(DB_FETCHMODE_ASSOC)) {
 echo $result['id']."\n";
MDB2.
Cette bibliothèque issue de la précédente, offre une API de gestion des SGBD. Elle se télécharge sur http://pear.php.net/package/MDB2.
Spreadsheet_Excel_Writer.
Cette bibliothèque fournit des classes de manipulation de fichier .xls sont.
Pour l'installer, il faut simplement télécharger le paquetage Spreadsheet_Excel_Writer, qui utilise OLE et Getopt.
Pour l'utiliser :
include "Spreadsheet/Excel/Writer.php;
Limites.
Cette bibliothèque n'est plus maintenue depuis 2012, on lui préfèrera donc ../PHPExcel/, qui gère en plus l'auto-ajustement, les filtres, et les XLSX (plus de limite de 65 536 lignes par feuille).
D'autant plus qu'elle remplit rapidement les logs avec des centaines de warnings : codice_4.
phpDocumentor.
Ce générateur de documentation analyse aussi le code. Ainsi, on peut décrire dans l'annotation qui précède une méthode, les types de ses arguments ou de son résultat :
 * @param bool $condition
 * @return String|null
Une méthode qui hérite d'une autre peut aussi hériter de sa doc :
 @inheritdoc
PECL.
 (prononcé "pickle", pour "PHP Extension Community Library"), est un gestionnaire de paquets. Exemples :
 sudo pecl install memcached
 sudo pecl install redis
 sudo pecl install apcu
 sudo pecl install xdebug
 sudo pecl install amqp
 sudo pecl install igbinary
 sudo pecl install imagick 
Pour désinstaller :
 sudo pecl uninstall memcached

Programmation PHP/Constantes
Tout comme en C, PHP peut utiliser des variables dont on précise la valeur une fois pour toutes et qui ne pourra être modifiée jusqu'à la fin de l'exécution du code.
Nom.
Le nom d'une constante suit les mêmes règles que celles pour les variables, mis à part qu'il n'est pas précédé par $. Par convention on les baptise avec des lettres capitales.
// Noms valides
CONSTANTE1
CONSTANTE_2
// Noms invalides
0CONSTANTE
Déclaration.
Pour déclarer une constante, on utilise la fonction codice_1 (depuis PHP3) qui renvoie un booléen codice_2 en cas de réussite de déclaration et codice_3 en cas d'échec.
La syntaxe de codice_4 est la suivante :
 define("chaine_de_caractere", "valeur");
La chaîne de caractère est le nom de la constante, pouvant contenir lettre, tiret, underscore et chiffre (la première lettre de la chaîne est une lettre dans [a-zA-Z]).
Utilisation.
L'utilisation est semblable à celle des variables.
<?php
 define("CONSTANTE", "Texte ici");
 echo CONSTANTE; // affiche "Texte ici"
Depuis PHP 5, la déclaration de constantes à l'intérieur d'une classe peut se faire avec le mot-clé const de la façon suivante :
<?php
class MaClasse
 const CONSTANTE = "Texte ici";
 function afficher()
 echo self::CONSTANTE;
$instance = new MaClasse;
$instance->afficher();
Ces constantes sont publiques par défaut, mais PHP 7.1 introduit la possibilité de les rendre privée avec : codice_5.
Informations supplémentaires.
Type de données.
Une constante, si elle peut être de type booléen, entier, nombre à virgule flottante ou chaîne de caractère, mais en aucun cas un objet
Depuis PHP 7, elle peut aussi être un tableau de scalaires.
 <?php
 // Le code suivant va générer une erreur en PHP 5 (mais pas en PHP 7)
 define ("CONSTANTE", ["a", "b", "c"]);
 print_r(CONSTANTE);
Depuis PHP7.4, les nombres entiers peuvent être rendus plus lisibles dans le code en ajoutant des "_" comme séparateurs. Ex :
 echo 10_00_000; // affiche 10000000
Unicité de la déclaration.
La redéclaration d'une constante portant le même nom est ignorée, et la valeur de la première déclaration reste valable.
 <?php
 define ("CONSTANTE", "première définition");
 define ("CONSTANTE", "deuxième définition"); // ignoré
 echo CONSTANTE; // retournera toujours "première définition"
D'où l'utilisation de codice_6 pour déterminer si une constante est déjà définie ou pas :
 define("CONSTANTE", "première définition");
 if (!defined("CONSTANTE")) {
Conflit de nom.
Il existe des constantes intégrées à PHP, or on ne peut créer une constante portant leurs noms, cela entraînerait une erreur.
En général, évitez la syntaxe suivante pour le nom d'une variable ou d'une constante :
 __"NOM"__
Constantes prédéfinies.
Il en existe de deux types :
Constantes intégrées à valeur fixe.
Les constantes suivantes ont des valeurs fixes, comme celles définies avec codice_4 :
Constantes intégrées à valeur dynamique.
Les constantes magiques :
Exemple d'utilisation :
<?php
echo 'Fichier: ' . __FILE__ . "\n";
echo 'Ligne: ' . __LINE__ . "\n";
class test
 function foo()
 echo 'Fonction: ' . __FUNCTION__ . "\n";
 echo 'Classe: ' . __CLASS__ . "\n";
test::foo();
// ou alors
$test = new test();
$test->foo();
Qui affichera :
L'affichage de la première ligne, par exemple, dépend d'où est situé le fichier dans l'arborescence des fichiers.

Programmation Linotte
=Le Langage de Programmation LINOTTE=
Le langage LINOTTE est un langage de programmation pour ordinateurs qui se veut au plus proche de :
LINOTTE est structuré.
Il exploite la structure d'un livre ou plus précisément d'un récit, tel que nous le connaissons.
LINOTTE est typé.
Il exploite quatre formes de type :