PHP / PHP5

Sapiens group intervient depuis plus de 10 ans dans le développement open-source PHP.

 

  1. PHP5 est OPEN-SOURCE

Le PHP5 est un langage informatique Open source qui permet de mettre en place des sites web dynamiques. Par dynamique on entend l’idée d’interaction, entre l’utilisateur et le « site web ».

Cette interaction concerne notamment les données utilisateurs comme les formulaires d’inscription, forum de discussions, blog.

  • PHP5, un bon choix ?

Déjà pour sa rapidité d’exécution sachant qu’il est compilé en tant que module apache (c’est-à-dire qu’il bénéficie des droits utilisateurs permettant de faire tourner un serveur apache).

Manipulation de données efficaces et simples grâce à sa compatibilité avec presque tous les systèmes de gestion de bases de données (SGBD). Nous définissons les SGBD comme étant un logiciel permettant d’enregistrer et partager des données dans une base. D’où le nom de base de données. Il en existe de plusieurs types, variant selon le constructeur. On peut citer MySQL, PostgreSQL, SQLite, SQL Server.

Avec ses nombreuses fonctions intégrées, on arrive à en retrouver une grande partie qui permet de nous faciliter la tâche (techniquement parlant) pour mettre en place des fonctionnalités des plus connues de nos jours.

On ne pourrait pas ne pas prendre en compte la forte communauté d’utilisateurs qui sont à l’écoute de toute problématique (digne de ce nom), proposent des scripts PHP prêts à l’emploi ou même des applications. Un script est une liste de commandes ou d’instructions (d’ordres pour être plus simples) à exécuter.

 

  1. Les composants PHP5 et leurs intérêts
  • php_curl

Cette librairie php5 (libcurl) permet de pouvoir interagir avec des serveurs externes. Et cela grâce à de nombreux protocoles. Nous pouvons citer entre autres :

– HTTP : HyperText Transfer Protocol, protocole de transfert utiliser dans le web et fonctionne sur n’importe quelle connexion fiable. Il est par défaut sur le port 80.

– HTTPS : version sécurisée du HTTP, avec le protocole SSL et le protocole TLS. Il est disponible par défaut sur le port 443

– FTP : File Transfer Protocol est un protocole de transfert de fichiers qui permet d’échanger des fichiers depuis un post à un autre. Mais aussi de modifier ou supprimer.

– LDAP: Lightweight Directory Access Protocol est un protocole qui repose sur les couches TCP/IP et permet d’interroger ou modifier des services d’annuaire. Il représente dorénavant les systèmes d’annuaires.

La libcurl supporte également les certificats comme :

– SSL : C’est le certificat qui accompagne le Protocol http de manière sécurisé  et permet entre autres de naviguer sur internet sans se soucier de la sécurité des données qu’on pourrait communiquer aux applications. On le retrouve sur les applications bancaires ou les sites d’achats en lignes.

Et permet aussi de gérer les requêtes telles que :

-POST http : C’est un terme technique qui représente un moyen d’envoyer des données à une application via un formulaire par exemple. Ces données seront ensuite traitées par l’application en question (connexion, inscription etc.)

– PUT http : Quant à PUT il permet d’insérer/stocker des fichiers sur un serveur. Les requêtes de type PUT sont beaucoup plus simples que les uploades de fichiers via les type POST.

Et également les chargements par formulaire HTTP, les proxies, les cookies.

  • php_pdo_mysql

PDO pour PHP Data Objects est une extension PHP5 permettant de définir une interface d’accès à une base de données depuis PHP.

Codé en Objet, elle n’est implémentée qu’à partir de PHP 5.1.0.

Le module PDO trouve sa force dans sa couche d’abstraction entre l’application et la base de données. Ce qui fait qu’elle facilite la tâche en cas de besoin de migration de base de données.

Pour ce faire il existe d’autres extensions SGBD comme :

-php_pdo_pgsql : semblable à l’extension PHP5 pour les bases de données PostgreSQL

Php_pdo_sqlite : sqlite est aussi un moteur de bases de données relationnelles. Cependant il ne reproduit pas le schéma client-serveur parce qu’il est directement intégré aux programmes.

– php_pdo_mssql : moteur de bases de données relationnelles pour les bases de données sous SQL Server (Microsoft SQL Server)

– php_pdo_odbc : ODBC est un logiciel middleware, qui permet de gérer plusieurs bases de données ayant chacun son propre fonctionnement

-php_pdo_firebird : Serveur de bases de données relationnelles SQL.

  • php_mcrypt

Cette librairie tient sa force dans le chiffrement. Elle permet notamment de chiffrer avec les fonctions crypt et crypt(1). Ce chiffrement se démarque de part son volume. Elle permet de chiffrer une importante quantité de données en permettant aux utilisateurs de pouvoir la déchiffrer.

Il contient plusieurs méthodes de chiffrement (algorithme de chiffrement) tels que Blowfish (chiffrement par défaut), DES (Data Encryption Standard), 3DES (chiffrement enchainé avec 3 applications successives de DES), SAFER (Secure And Fast Encryption Routine, hachage sous forme de rounds ou Block).

  • debug_print_backtrace

Une fois activé, debug_print_backtrace permet d’afficher la pile d’exécution de PHP.

Il permet d’exposer les appels faites aux fonctions, aux fichiers qu’on inclut ou qui sont requis. Il peut aussi afficher les appels à eval ().

Eval est une fonction qui exécute une chaine de caractères en code PHP.

  • hash_algos

Hash_algos est une fonction qui permet de retourner la liste des fonctions de hachage enregistrés/supportés.

Le retour se fait sous forme de tableau indexé numériquement.

 

  1. PHP5 : Evolution, histoire

Pour sa petite histoire le PHP fut crée en 1994 par Rasmus Lerdorf pour son site web. Il se servait d’une bibliothèque en Perl pour conserver une trace des visiteurs qui auraient visité son portfolio.

En 1997, après sa publication sur la toile, deux étudiants redéveloppèrent le cœur de PHP. Ce sera la version 3. Peu de temps après les mêmes étudiants commencèrent la réécriture du moteur interne de PHP. Nous voilà à PHP4 avec un nouveau moteur : ZEND Engine.

La version 5, sortie en 2004, utilise Zend Engine 2, et introduit la POO, une gestion des erreurs en se focalisant sur les exceptions etc.

PHP5 apporte aussi beaucoup d’autres nouveautés telles que la manipulation des données XML basés sur la librairie libxml2, une API Document Object Model.

XML est semblable au HTML sauf qu’il permet à l’utilisateur de définir ses propres balises. Ce qui permet de faire la différence entre la présentation du document et le contenu de ce dernier.

La dernière mise à jour est PHP 5.6 et a eu lieu en début du mois de Mars 2014.

 

  1. Sécurité 

De nos jours, la sécurité est devenue un point très sensible dans le domaine du web. Plusieurs failles se font connaitre très souvent et il n’est pas toujours évident de s’en prémunir.

Parmi les plus connus on peut citer la faille XSS qui consiste à injecter du contenu dans une page web à partir d’un champ de formulaire (plus fréquemment en JavaScript). PHP5 a su palier cela au fil du temps et propose des solutions pour s’en prémunir. On peut aussi citer l’injection SQL, contournable en PHP toujours.

 

  1. PHP5 sur la toile
  • Notoriété du PHP

De nos jours PHP5 est l’un des langages web les plus utilisées. Face à l’essor des CMS, qui pour la plupart sont codés en PHP, on note une hausse significative des parts du marché du web en ce qui concerne ce langage Web. PHP occupe désormais 78,70% (au 1er Janvier 2013, contre 77,30% une année avant) de la toile contre 20,20% pour l’ASP.NET (21 ,70% au 1er janvier 2012). Java suit derrière avec 4 ,10%.

Les Langages orientés objet (POO pour les intimes), dont PHP5, ont su retenir l’attention des sites en pleine ascension tels que eBay, LinkedIn.

  • Indépendance du PHP

D’autre part, pour travailler sur PHP (toutes versions confondues), mis à part les aspects techniques, certains outils web sont indispensables.

PHP s’exécute, comme nous l’avons évoqué un peu plus haut, coté serveur. Ce qui veut dire qu’il est nécessaire d’en avoir un, supportant PHP5. Il en existe beaucoup en Open Source cependant les plus connues (et plus fiables) sont :

-WAMP (Windows Apache MySQL PHP) : pour les environnements Windows. La dernière version est WAMPSERVER 2.4 supportant jusqu’à PHP 5.4.

– MAMP (Macintosh Apache MySQL PHP) : pour les environnements Mac. Il existe des versions gratuites et une version PRO. Tous deux supportent jusqu’à PHP 5.5.

–LAMP (Linux Apache MySQL PHP) : pour les environnements Linux. Bien entendu, toujours en Open Source.

Ceux-là restent les plus utilisés, on peut toujours en citer d’autres comme :

–LAMA: Linux Apache MySQL ASP

–SAMP : SOLARIS Apache MySQL PHP,

-LAPP : Linux Apache PostGreSQL PHP,

-WASP: Windows Apache SQLServer PHP,

–HAMP : HURD Apache MySQL PHP.

PHP est bien mais peut être beaucoup mieux en étant accompagné de certains langages clients. Notre vision se porte tout de suite sur le JavaScript (exécuté coté client, navigateur). Le couple PHP/JavaScript (MySQL avec bien entendu) octroie une force immesurable à qui les maitrisent.

Après le PHP, c’est le langage JS qui est le plus utilisé, notamment avec 82%, suivi par le Java (24%).Il est open source et reste très accessible grâce à sa forte communauté, très soudée.

  • Compétences sur le marché

Sur le plan mondial, plus de 6.4 millions de développeurs PHP ont été dénombrés en 2008 dont 230 000 en France contre 810 000 aux Etats Unis. La crise épargne ce langage dont les ressources de développement restent accessibles financièrement. Les cycles de développement restent courts grâce notamment à la communauté d’utilisateurs et à différentes associations telles que l’AFUP. Mais aussi grâce à la documentation renfermant la totalité des fonctions de bases.

 Si vous souhaitez en savoir plus sur ce langage objet, n’hésitez pas à nous contacter ou à laisser un commentaire; un des spécialistes Sapiens Group vous répondra dans les plus brefs délais.

 

 

 

 

Donnez votre avis