'>

langage de programmation PHP

PHP est un langage de script côté serveur conçu pour le développement web, mais aussi utilisé comme un langage de programmation généraliste. PHP est maintenant installé sur plus de 244 millions de sites Web et de 2,1 million de serveurs Web. [2] À l'origine créé par Rasmus Lerdorf en 1995, l'implémentation de référence de PHP est désormais produit par le groupe PHP. [3] Bien que PHP signifiait à l'origine Personal Accueil Page [4], il se situe maintenant pour PHP: Hypertext Preprocessor, un acronyme récursif [5].
Code PHP est interprété par un serveur Web avec un module de processeur PHP qui génère la page Web résultante: commandes PHP peuvent être intégrées directement dans un document source HTML plutôt que d'appeler un fichier externe pour traiter les données. Il a également évolué pour inclure une capacité d'interface de ligne de commande et peut être utilisé dans des applications graphiques autonomes. [6]
PHP est un logiciel libre distribué sous licence PHP, ce qui est incompatible avec la GNU General Public License (GPL) en raison de restrictions sur l'utilisation du terme PHP. [7] PHP peut être déployé sur la plupart des serveurs web et aussi comme une coquille autonome sur presque tous les systèmes d'exploitation et plate-forme, gratuitement.
Histoire
Rasmus Lerdorf, qui a écrit l'Interface (CGI) composant original Common Gateway, avec Andi Gutmans et Zeev Suraski, qui a réécrit le parseur qui a formé PHP 3
Développement PHP a commencé en 1994 lorsque le développeur Rasmus Lerdorf a écrit une série d'interface passerelle (CGI) scripts Perl communs, dont il se servait pour maintenir sa page personnelle. Les outils accomplir des tâches telles que l'affichage de son curriculum vitae et l'enregistrement de son trafic Web. [3] [9] [10] Il a réécrit ces scripts en C pour des raisons de performances, l'extension à ajouter la possibilité de travailler avec des formulaires Web et de communiquer avec des bases de données , et a appelé cette mise en œuvre "Personal Home Page / Forms Interpreter" ou PHP / FI. PHP / FI pourrait être utilisé pour construire des applications Web simples et dynamiques. Lerdorf initialement annoncé la sortie de PHP / FI comme "Personal Home Page Tools (PHP Tools) La version 1.0" publiquement pour accélérer lieu de bugs et améliorer le code, sur le groupe de discussion Usenet comp.infosystems.www.authoring.cgi le 8 Juin, 1995. [11] [12] Cette version avait déjà les fonctionnalités de base que PHP a partir de 2013. Cela comprenait des variables Perl-like, la gestion des formulaires, et la capacité à intégrer HTML. La syntaxe ressemble à celle de Perl mais a été plus limitée et plus simple, mais moins cohérente. [3] Une équipe de développement a commencé à se former et, après des mois de travail et de bêta-test, officiellement publié PHP / FI 2 en Novembre 1997.
Zeev Suraski et Gutmans Andi réécrit l'analyseur en 1997 et a formé la base de PHP 3, en changeant le nom de la langue à l'acronyme récursif PHP:. Hypertext Preprocessor [3] Par la suite, des tests publics de PHP 3 a commencé, et le lancement officiel est venu en Juin 1998. Suraski et Gutmans alors commencé une nouvelle réécriture du noyau de PHP, la production du moteur Zend en 1999. [13] Ils ont également fondé Zend Technologies de Ramat Gan, Israël. [3]
Le 22 mai 2000, PHP 4, alimenté par le Zend Engine 1.0, a été libéré. ​​[3] En Août 2008, cette branche a atteint la version 4.4.9. PHP 4 n'est plus en cours de développement ni ne les mises à jour de sécurité soit libéré. ​​[14] [15]
Le 13 Juillet 2004, PHP 5 est sorti, propulsé par le nouveau Zend Engine II. [3] PHP 5 inclus de nouvelles fonctionnalités comme un support amélioré pour la programmation orientée objet, l'interface de PHP Data Objects (PDO) l'extension (qui définit un léger et une interface cohérente pour accéder à des bases de données), et de nombreuses améliorations de performances. [16] En 2008, PHP 5 est devenu la seule version stable en cours de développement. Liaison statique fin avait été absent de PHP et a été ajouté dans la version 5.3. [17] [18]
Une nouvelle version majeure a été en cours de développement aux côtés de PHP 5 depuis plusieurs années. Cette version a été initialement prévu pour être publié en PHP 6 en raison de ses changements importants, qui comprenaient des plans pour le support Unicode complet. Cependant, le support Unicode a pris beaucoup plus de temps aux développeurs de mettre en œuvre que l'on pensait initialement, et la décision a été faite en Mars 2010 [19] pour amener le projet à une branche, avec des fonctionnalités en cours de développement déplacé vers le tronc.
Les changements dans le nouveau code comprennent l'enlèvement de register_globals, [20] cite magie et mode sans échec. [14] [21] La raison pour laquelle le transfert a été que register_globals avaient ouvert des trous de sécurité en permettant intentionnellement injection de données d'exécution, et l'utilisation de magic quotes avaient un caractère imprévisible. Au lieu de cela, pour échapper les caractères, les guillemets magiques peuvent être remplacées par la fonction addslashes (), ou plus précisément un mécanisme d'échappement spécifique au fournisseur de base de données elle-même comme mysql_real_escape_string () pour MySQL. Fonctions qui seront supprimés dans les futures versions et ont été dépréciés dans PHP 5.3 va produire un avertissement si elle est utilisée. [22]
Beaucoup de projets open-source de grande envergure ont cessé de supporter PHP 4 dans le nouveau code du 5 Février 2008, à cause de l'initiative GoPHP5 [23], fourni par un consortium de développeurs PHP promouvoir la transition de PHP 4 à PHP 5. [ 24] [25]
Interprètes PHP sont disponibles sur les deux systèmes d'exploitation 32-bit et 64-bit, mais sur Microsoft Windows la seule distribution officielle est une application 32 bits, ce qui nécessite le mode de compatibilité Windows 32 bits tout en utilisant Internet Information Services (IIS) sur un 64 - plate-forme Windows bits. Des versions expérimentales 64 bits de PHP 5.3.0 sont brièvement disponible pour Microsoft Windows, mais ont depuis été supprimés. [26]Historique des versionsKey développement Signification des couleursRed Old presse N ° développementJaune correctifs de sécurité version stableGreen Bug version stable et correctifs de sécuritéBleu future version Nouvelles fonctionnalitésVersion Date de sortie pris en charge jusqu'à [27] Notes1.0 1995-06-08 Officiellement appelé "Personal Home Page Tools (PHP Tools)". Il s'agit de la première utilisation du nom «PHP». [3]2.0 1997-11-013.0 1998-06-06 2000-10-20 déplace de développement d'une personne à plusieurs développeurs. Zeev Suraski et Andi Gutmans réécrire la base pour cette version. [3]4.0 2000-05-22 2001-01-23 ajouté plus avancé parse deux étapes / Exécuter système tag-analyse a appelé le moteur Zend. [28]4.1 2001-12-10 2002-03-12 introduit des «superglobals» ($ _GET, $ _POST, $ _SESSION, etc) [28]4.2 2002-04-22 2002-09-06 register_globals désactivée par défaut. Les données reçues via le réseau n'est pas inséré directement dans l'espace de noms global plus, la fermeture des trous de sécurité possibles dans les applications. [28]4.3 2002-12-27 2005-03-31 Présenté l'interface de ligne de commande (CLI), pour compléter le CGI. [28] [29]4.4 2005-07-11 2008-08-07 Ajout des pages de manuel pour phpize et des scripts php-config. [28]5.0 2004-07-13 2005-09-05 Zend Engine II avec un nouveau modèle d'objet [30].5.1 2005-11-24 2006-08-24 améliorations de performance avec l'introduction de variables de compilation dans repensé moteur PHP. [30] Ajouté PHP Data Objects (PDO) comme une interface cohérente pour accéder aux bases de données. [31]5.2 2006-11-02 2011-01-06 permis à l'extension sur les filtres par défaut. Support JSON natif. [30]5.3 2009-06-30 2014-07 [32] support des espaces de noms, les liaisons tardives statiques, étiquette de saut (goto limitée), les fermetures autochtones, les archives PHP native (pharma), la collecte des ordures pour les références circulaires, un meilleur support Windows, sqlite3, comme Mysqlnd un remplacement pour libmysql comme sous-jacents bibliothèque pour les extensions qui travaillent avec MySQL, fileinfo comme un remplacement pour mime_magic pour un meilleur support MIME, l'extension de l'internationalisation et de la dépréciation ereg extension.5.4 2012-03-01 Aucune date fixée (attendu 2015-03 [33]) Support Trait, le soutien de la syntaxe de tableau court. Les articles retirés: register_globals, safe_mode, allow_call_time_pass_reference, session_register (), session_unregister () et session_is_registered (). Built-in serveur Web. [34] Plusieurs améliorations aux fonctionnalités existantes, de performance et de mémoire réduite.5.5 2013-06-20 Aucune date fixée (attendu 2016-06 [33]) Générateurs, Zend Optimizer + [33]5.6 Aucune date fixée Aucune date fixée opérateur interne surcharge, les changements GMP [35]6 Pas de date fixée Aucune date fixée Le développement de PHP 6 a été retardée parce que les développeurs ont décidé de l'approche actuelle de la gestion de l'instance Unicode n'est pas une bonne chose, et nous envisageons d'autres façons dans la prochaine version de PHP. [36] mises à jour qui étaient destinés à PHP 6 ont été ajoutés à PHP 5.3.0 (soutien namespace, fixations fin statiques, les fonctions lambda, fermetures, goto) et 5.4.0 (traits, reconsolidation de fermeture) à la place.
À compter du 28 Juin 2011, le groupe PHP a commencé à suivre un calendrier pour de nouvelles versions de PHP seront libérés. [33] En vertu de ce scénario, au moins une presse devrait avoir lieu tous les mois. Une fois par an, une version mineure doit se produire qui peuvent inclure de nouvelles fonctionnalités. Chaque version mineure doit au moins avoir 2 ans de sécurité et des corrections de bogues, suivie d'au moins 1 an de seulement correctifs de sécurité, pour un total d'un processus de libération de 3 ans pour chaque version mineure. Pas de nouvelles fonctionnalités (sauf si petit et autonome) seront introduites dans une version mineure pendant le processus de libération de 3 ans.SyntaxeArticle détaillé: syntaxe PHP et la sémantique
Le programme Bonjour tout le monde suit est écrit dans le code PHP intégré dans un document HTML:
<! DOCTYPE html><meta charset="utf-8"><title> PHP Test </ title><? Php
 
echo 'Bonjour le monde';>
Cependant, comme PHP n'a pas besoin d'être intégré dans le HTML, ou utilisés avec un serveur web, la version la plus simple d'un programme Bonjour tout le monde peut être écrit comme ceci:
<= 'Bonjour'?;
L'interpréteur PHP seulement exécute le code PHP au sein de ses séparateurs. Rien en dehors de ses séparateurs n'est pas traité par PHP (bien que le texte non-PHP est encore soumise à des structures de contrôle énoncées dans le code PHP). Les séparateurs les plus courants sont <? Php pour ouvrir et> pour fermer sections PHP. <script language="php"> et </ script> séparateurs sont également disponibles, comme le sont les formes raccourcies <? ou <? = (qui est utilisé pour faire écho dos une chaîne ou variable) et> ainsi que ASP style formes courtes <% ou <% = et%>. Alors que séparateurs courts sont utilisés, ils font des fichiers de script moins portable que le soutien pour eux peut être désactivé dans la configuration de PHP, et donc ils sont découragés. [37] Le but de toutes ces séparateurs est de séparer le code PHP à partir du code non-PHP, y compris HTML. [38]
La première forme de séparateurs, <? Php et?>, En XHTML et autres documents XML, crée correctement formé 'instructions' XML. [39] Cela signifie que le mélange résultant de code PHP et autres balises dans le fichier côté serveur est lui-même bien formé XML.
Les variables sont précédées d'un symbole du dollar, et un type n'a pas besoin d'être spécifié à l'avance. Contrairement aux noms de fonctions et de classe, des noms de variables sont sensibles à la casse. Les deux guillemets ("") et les chaînes Heredoc offrent la possibilité d'interpoler la valeur d'une variable dans la chaîne. [40] PHP traite les sauts de ligne comme un espace à la manière d'un langage de forme libre (sauf à l'intérieur des citations à cordes), et les déclarations sont terminées par un point-virgule [41] PHP dispose de trois types de commentaires syntaxe:.. / ** / marques bloc et inline commentaires; / / ainsi que # sont utilisées pour commentaires une ligne [42] La déclaration d'écho est l'un des plusieurs installations PHP fournit de texte de sortie, par exemple, à un navigateur Web.
En termes de mots clés et la syntaxe du langage, PHP est similaire à la plupart des langues de haut niveau qui suivent la syntaxe de style C. si les conditions, boucles for et while, et retour de la fonction sont similaires dans la syntaxe de langages tels que C, C + +, C #, Java et Perl.Les types de données
PHP stocke des nombres entiers dans un intervalle dépendant de la plateforme, que ce soit une version 64 bits ou 32 bits équivalent entier signé le langage C de type long. Entiers non signés sont converties en valeurs signés dans certaines situations, ce comportement est différent des autres langages de programmation [43] variables Integer peuvent être affectés à l'aide décimal (positifs et négatifs), octal, hexadécimal, binaire et notations.. Les nombres flottants sont également stockées dans une gamme spécifique à la plateforme. Elles peuvent être spécifiées en utilisant la notation en virgule flottante, ou deux formes de notation scientifique. [44] PHP dispose d'un type booléen natif qui est similaire aux types booléens indigènes en Java et C + +. En utilisant les règles de conversion de type booléens, des valeurs non nulles sont interprétés comme vrai et zéro comme faux, comme en Perl et C + +. [44] Le type de données null représente une variable qui n'a pas de valeur. La seule valeur dans le type de données NULL est NULL. [44] Les variables de type "ressource" représentent des références à des ressources provenant de sources externes. Ceux-ci sont généralement créées par des fonctions d'un poste particulier, et ne peuvent être traitées par des fonctions de la même extension;. Exemples fichier, image, et les ressources de base de données [44] Les tableaux peuvent contenir des éléments de n'importe quel type que PHP peut gérer, y compris les ressources , des objets et même d'autres tableaux. Ordre est conservé dans des listes de valeurs et les hashs avec deux clés et des valeurs, et les deux peuvent être mêlés. [44] PHP supporte également des chaînes, qui peuvent être utilisés avec des apostrophes, des guillemets doubles, Nowdoc ou la syntaxe heredoc. [45]
La bibliothèque standard PHP (SPL) tente de résoudre des problèmes classiques et implémente des interfaces d'accès aux données efficaces et des classes. [46]Fonctions
PHP dispose de centaines de fonctions de base et des milliers d'autres via des extensions. Ces fonctions sont bien documentés sur le site PHP, mais la bibliothèque intégrée dispose d'une grande variété de conventions de nommage et les incohérences [47] PHP ne dispose pas actuellement des fonctions de programmation de fil, même si elle prend en charge la programmation multi-processus sur les systèmes POSIX.. [48]
Des fonctions supplémentaires peuvent être définies par un développeur:
fonction myFunction () {/ / déclare une fonction, il se nomme myFunction
 
return 'John Doe'; / / Retourne la valeur 'John Doe'}
 
echo 'Mon nom est'. myFunction (). '!'; / / Affiche le texte concaténé avec la valeur de retour de myFunction./ / MyFunction est appelé à la suite de cette syntaxe./ / La suite de la sortie sera «Mon nom est John Doe!
En PHP 5.2 et les versions antérieures, les fonctions ne sont pas des fonctions de première classe et ne peuvent être référencées par leur nom, directement ou de manière dynamique par une variable contenant le nom de la fonction. [49] fonctions définies par l'utilisateur peuvent être créés à tout moment sans être prototypées [49]. fonctions peuvent être définies à l'intérieur des blocs de code, permettant une décision d'exécution quant à savoir si ou non une fonction doit être définie. Les appels de fonction doivent utiliser des parenthèses, à l'exception du zéro des fonctions constructeur de classe argument appelé avec le nouvel opérateur PHP, où parenthèses sont facultatifs. PHP supporte les fonctions quasi-anonymes via la fonction de create_function (), même si elles ne sont pas vraies fonctions anonymes en raison des fonctions anonymes n'ont pas de nom, mais ces fonctions ne peuvent être référencées par leur nom, ou indirectement par le biais d'un $ function_name variable ();, en PHP [. 49]
PHP a obtenu le soutien des fermetures en PHP 5.3. Fonctions anonymes véritables sont prises en charge en utilisant la syntaxe suivante:
fonction getAdder ($ x) {
 
retourner fonction ($ y) utilisation ($ x) {
  
return $ x + $ y;
 
};}
 
$ Additionneur = getAdder (8);echo $ sommateur (2); / / affiche "10"
Ici, le getAdder () crée une fermeture à l'aide du paramètre $ x (l'utilisation des mots clés importe une variable du contexte lexical), qui prend un argument supplémentaire $ y et retourne à l'appelant. Une telle fonction est un objet de première classe, ce qui signifie qu'il peut être stocké dans une variable passée en paramètre à d'autres fonctions, etc Pour plus de détails voir fonctions lambda et fermetures RFC.
L'instruction goto contrôle de flux est utilisé comme suit:
verrouillage de function () {
 
$ File = fopen ('fichier.txt', 'r +');
 
retry:
 
if (flock ($ file, LOCK_EX |! LOCK_NB)) {
  
goto retry;
 
}
 
fwrite ($ fichier, 'Success!');
 
fclose ($ file);}
Quand flock () est appelée, PHP ouvre un dossier et tente de le verrouiller. L'étiquette cible retry: définit le point auquel l'exécution doit retourner si flock () a échoué et goto retry; est appelé. L'instruction goto est restreinte et nécessite que l'étiquette cible soit dans le même fichier et le contexte.
L'instruction goto a été soutenue depuis PHP 5.3.Objets
Des fonctions de programmation orientée objet de base a été ajoutée en PHP 3 et amélioré en PHP 4. [3] manipulation d'objets a été complètement réécrit pour PHP 5, en élargissant l'ensemble de fonctionnalités et améliorer la performance. [50] Dans les versions précédentes de PHP, les objets ont été traités comme types de valeurs. [50] L'inconvénient de cette méthode est que l'objet entier a été copié lorsqu'une variable a été cédée ou transmise en tant que paramètre à une méthode. Dans la nouvelle approche, les objets sont référencés par la poignée, et non par valeur. PHP 5 introduit des variables et des méthodes membres privés et protégés, ainsi que les classes abstraites, les classes finales, les méthodes abstraites et des méthodes finales. Elle a également introduit un moyen standard de déclarer les constructeurs et destructeurs, semblable à celle d'autres langages orientés objet tels que C + +, et un modèle de gestion des exceptions standard. De plus, PHP 5 ajouté interfaces et a permis de multiples interfaces à mettre en œuvre. Il ya des interfaces spéciales qui permettent aux objets d'interagir avec le système d'exécution. Les objets implémentant ArrayAccess peuvent être utilisés avec la syntaxe de tableaux et d'objets d'application Iterator ou IteratorAggregate peuvent être utilisés avec la langue foreach. Il n'existe aucune fonctionnalité de table virtuelle dans le moteur, les variables statiques sont liés de manière avec un nom à la place d'une référence au moment de la compilation. [51]
Si le développeur crée une copie d'un objet en utilisant le mot clone réservé, le moteur Zend vérifier si une méthode clone () de __ a été défini ou non. Sinon, il va appeler un __ clone () par défaut qui permet de copier les propriétés de l'objet. Si une méthode clone () de __ est définie, alors il sera chargé de définir les propriétés nécessaires à l'objet créé. Pour plus de commodité, le moteur va fournir une fonction qui importe les propriétés de l'objet source, de sorte que le programmeur peut commencer avec une réplique par la valeur de l'objet source et uniquement remplacer les propriétés qui doivent être modifiés. [52]
Ce qui suit est un exemple de base de la programmation orientée objet en PHP:
class Person {
 
public $ prenom;
 
public $ nomFamille;

 
public function __ construct ($ prenom, $ nomFamille ='') {/ / Paramètre facultatif
  
$ This-> prenom = $ prenom;
  
$ This-> Nom = $ nomFamille;
 
}

 
fonction publique saluer () {
  
return "Bonjour, mon nom est". $ This-> prenom. "." $ This-> Nom. ".";
 
}

 
fonction staticGreet public static ($ prenom, $ nom) {
  
return "Bonjour, mon nom est". $ Prenom. "." $ NomFamille. ".";
 
}}
 
$ Qu'il = new Personne ('John', 'Smith');$ Qu'elle a = new Personne ('Sally', 'Davis');$ Autre = new Personne ("iamin ');
 
echo $ a-> saluent (); / / affiche ". Bonjour, mon nom est John Smith"echo '<br />';echo $ a-> saluent (); / / affiche ". Bonjour, mon nom est Sally Davis"echo '<br />';echo $ autres-> saluent (); / / affiche "Bonjour, mon nom est iamin."echo '<br />';echo personne :: staticGreet («Jane», «Doe '); / / affiche". Bonjour, mon nom est Jane Doe "
La visibilité des propriétés et méthodes PHP est définie en utilisant les mots clés publiques, privées et protégées. La valeur par défaut est public, si ce n'est que var est utilisé; var est un synonyme de public. Articles déclarées publiques peut être consulté partout. limite l'accès aux classes héritées (et à la classe qui définit l'article) protégé. privé limite la visibilité que dans la classe qui définit l'objet. [53] Les objets du même type ont accès aux membres privés et protégés les uns des autres, même si elles ne sont pas de la même instance. Les fonctions de visibilité membres de PHP ont parfois été décrits comme «très utile». [54] Cependant, ils ont aussi parfois été décrit comme «le meilleur hors de propos et au pire carrément nuisibles». [55]Implémentations
Le langage PHP a été mis en œuvre comme interprète, et c'est encore la mise en œuvre la plus populaire. Plusieurs compilateurs ont été développés qui découpler le langage PHP à partir de l'interprète. Avantages de compilation comprennent mieux la vitesse d'exécution, l'analyse statique, et l'amélioration de l'interopérabilité avec du code écrit en d'autres langues [56].
PHP compilateurs de la note incluent Phalanger, qui compile PHP dans Language (CIL) bytecode intermédiaire commun, et HipHop, développé à Facebook et maintenant disponible en open source, qui transforme le script PHP en C + +, puis le compile, ce qui réduit la charge du serveur jusqu'à 50 %.
Code source PHP est compilé sur la volée dans un format interne qui peut être exécuté par le moteur PHP. [57] [58] Dans le but d'accélérer le temps d'exécution et ne pas avoir à compiler le code source PHP à chaque fois que la page Web est accessible, les scripts PHP peuvent également être déployés en format exécutable en utilisant un compilateur PHP.
optimiseurs du Code visent à améliorer la performance du code compilé en réduisant sa taille, la fusion instructions redondantes et faire d'autres changements qui peuvent réduire le temps d'exécution. Avec PHP, il ya souvent des opportunités d'optimisation de code. [59] Un exemple d'un optimiseur de code est l'extension de PHP qu'eAccelerator.
Une autre approche pour réduire les frais généraux de compilation pour les serveurs PHP utilise un cache d'opcode. caches opcode travail par la mise en cache sous forme compilée d'un script PHP (opcodes) dans la mémoire partagée pour éviter le surcoût de l'analyse et la compilation du code à chaque fois que le script s'exécute. Une cache d'opcode, Zend Opcache, est intégré à PHP depuis la version 5.5.Licences
PHP est un logiciel libre distribué sous licence PHP, qui insiste sur le fait que: [60]

    
Les produits dérivés de ce logiciel ne peuvent être dénommés «PHP», ni comporter «PHP» apparaître dans leur nom sans l'autorisation écrite préalable de group@php.net. Vous pouvez indiquer que votre logiciel fonctionne en conjonction avec PHP en disant: «Foo pour PHP" au lieu de l'appeler "PHP Foo» ou «phpfoo".
Cette restriction sur l'utilisation du nom PHP rend incompatible avec la GNU General Public License (GPL). [61]Le développement et la communauté
PHP inclut les bibliothèques libres et open source avec le moignon. PHP est un système fondamentalement Internet-aware avec des modules construits en permettant d'accéder Transfer Protocol (FTP) Les serveurs de fichiers, de nombreux serveurs de bases de données, bibliothèques SQL embarqués tels que PostgreSQL intégrée, MySQL, Microsoft SQL Server et SQLite, les serveurs LDAP, et d'autres. De nombreuses fonctions familières aux programmeurs C tels que ceux de la famille stdio sont disponibles dans le PHP build standard. [62]
PHP permet aux développeurs d'écrire des extensions en C pour ajouter des fonctionnalités au langage PHP. Ceux-ci peuvent ensuite être compilée avec PHP, ou bien chargée au moment de l'exécution. Des prolongations ont été écrites pour ajouter le support pour l'API Windows, la gestion des processus sous Unix-like systèmes d'exploitation, les chaînes multi-octets (Unicode), boucle, et plusieurs formats de compression populaires. Les autres caractéristiques comprennent l'intégration avec l'IRC, la génération dynamique d'images et de contenu Adobe Flash, et même la synthèse vocale. Les fonctions de base du langage tels que ceux traitant des chaînes et des tableaux sont également mises en œuvre comme une extension [63] Le PHP Extension Community Library (PECL) projet est un référentiel pour les extensions au langage PHP [64] PDO -.. (PHP Data Objects ) est une interface pour l'accès aux bases de données. [65] [66] [67] [68] [69] [70] [71]
Zend Technologies fournit un examen de certification pour les programmeurs de devenir développeurs PHP certifiés.Répartition
PHP-FPM (FastCGI Process Manager), une implémentation PHP FastCGI, est livré avec la distribution de PHP depuis la version officielle 5.3.3. [72]Utiliser
PHP est un langage de script d'usage général qui est particulièrement adapté au développement Web côté serveur PHP où se déroule généralement sur un serveur web. Tout code PHP dans un fichier demandé est exécuté par l'environnement d'exécution PHP, généralement pour créer du contenu de la page Web dynamique ou images dynamiques utilisés sur les sites Web ou ailleurs. [73] Il peut également être utilisé pour les scripts de ligne de commande et l'interface côté client utilisateur graphique (GUI) des applications. PHP peut être déployé sur la plupart des serveurs web, de nombreux systèmes d'exploitation et plates-formes, et peut être utilisé avec de nombreux systèmes de gestion de bases de données relationnelles (SGBDR). La plupart des fournisseurs d'hébergement Web le support de PHP pour utilisation par leurs clients. Il est disponible gratuitement, et le groupe PHP fournit le code source complet pour les utilisateurs de créer, de personnaliser et d'étendre pour leur propre usage. [8]
PHP agit principalement comme un filtre [74], en prenant en entrée un fichier ou un flux contenant du texte et / ou des instructions PHP et délivrer un autre flux de données, le plus souvent le résultat sera HTML. Depuis PHP 4, l'analyseur PHP compile entrée pour produire bytecode pour le traitement par le moteur Zend, ce qui donne une meilleure performance de son prédécesseur d'un interprète. [75]
Initialement conçu pour créer des pages web dynamiques, PHP se concentre désormais principalement sur les scripts côté serveur, [76] et il est semblable à d'autres langages de script côté serveur qui fournissent un contenu dynamique à partir d'un serveur Web à un client, tels que ASP.NET de Microsoft , JavaServer Pages de Sun Microsystems, [77] et mod_perl. PHP a également attiré l'élaboration de nombreux cadres de logiciels qui fournissent les blocs de construction et une structure de conception pour promouvoir le développement rapide d'applications (RAD). Certains d'entre eux comprennent CakePHP, Symfony, CodeIgniter, Laravel, Yii Framework et Zend Framework, offrant des fonctionnalités similaires à d'autres frameworks d'applications web.
L'architecture LAMP est devenu populaire dans l'industrie du web comme un moyen de déployer des applications Web. PHP est couramment utilisé comme le P dans cet ensemble aux côtés de Linux, Apache et MySQL, bien que le P peut également se référer à Python, Perl, ou un mélange des trois. Paquets similaires sont également disponibles pour Windows et OS X, alors appelé WAMP et MAMP, avec la première lettre debout pour le système d'exploitation respectif. Bien que PHP et Apache sont fournis dans le cadre du Mac OS X base de l'installation, les utilisateurs de ces paquets cherchent un mécanisme d'installation simple qui peut être plus facilement mises à jour.
En Avril 2007, plus de 20 millions de domaines Internet devaient services Web hébergés sur des serveurs avec PHP installé et mod_php a été enregistré en tant que module du serveur le plus populaire Apache HTTP. [78] Le PHP est utilisé comme langage de programmation côté serveur sur 75% de tous sites dont côté serveur langage de programmation est connue [79], et PHP est un logiciel open source le plus utilisé au sein des entreprises. [80] Les systèmes de gestion de contenu Web écrites en PHP include MediaWiki [81], Joomla, eZ Publish, SilverStripe, [ 82] WordPress [83], Drupal, [84] Moodle, [85] l'utilisateur face partie de Facebook, [86] et Digg. [87]Sécurité
Environ 30% de toutes les vulnérabilités répertoriées sur la National Vulnerability Database sont liés à PHP [88] Ces vulnérabilités sont causées principalement par le non respect meilleures règles de programmation de pratique;. Des failles de sécurité techniques de la langue elle-même ou de ses bibliothèques de base ne sont pas fréquentes (23 En 2008, environ 1% du total). [89] [90] Reconnaissant que les programmeurs font des erreurs, certaines langues comprennent entacher la vérification de détecter automatiquement l'absence de validation d'entrée qui induit de nombreuses questions. Cette fonctionnalité est en cours d'élaboration pour PHP [91], mais son inclusion dans un communiqué a été rejetée à plusieurs reprises dans le passé. [92] [93]
Il existe des patchs de protection avancées telles que Suhosin-Patch et Durcissement, spécialement conçus pour les environnements d'hébergement Web.

Published By Drupal french Study