Outils php ajoutant du matériel téléphone. Liste d'outils utiles pour les développeurs php. Disons un mot sur le débogage et le profilage

Les langages de programmation sont divisés en trois types :

1. Langues compilées

Le travail des langages compilés peut être représenté par le schéma suivant :

Autrement dit, le cycle de vie du programme comprend les étapes suivantes :
1. Ecrire le code source du programme
2. Compilation dans un fichier exécutable (.exe par exemple)
3. Exécuter le programme sur un PC

Cette approche offre des performances élevées. C'est-à-dire que le programme est préparé à l'avance, au moment où il est nécessaire, il est simplement lancé.
Tous les utilisateurs sont habitués à cette approche

Exemples de tels langages : assembleur, C, C++, Pascal

2. Langues interprétées

Ainsi, le cycle de vie du programme se résume à :
1. Écriture
2. Exécution

Essentiellement, les programmes interprétés sont ce qu'on appelle des « scripts » - une description d'un ensemble d'actions que l'interprète doit effectuer.
Autrement dit, l'interprète est gros programme avec beaucoup diverses fonctions. Et un programme est une indication des fonctions à appeler dans quel ordre, une description de l'interaction de ces fonctions

Il s’agit de langages spécifiques, comme par exemple les langages de création de pages web.
Exemples : PHP, JavaScript, Python

3. Type mixte

Comment fonctionnent les langues type mixte(compilés-interprétés) sont illustrés par le schéma suivant :


Java fait spécifiquement référence aux langages de programmation compilés-interprétés. L'interpréteur en Java est appelé « machine virtuelle », c'est pourquoi il est ainsi étiqueté sur la figure.

La question se pose, pourquoi une telle complexité ? Le fait est que cette approche combine les avantages des langages compilés (vitesse d'exécution) et des langages interprétés (indépendance et sécurité du système d'exploitation)

Exemples de tels langages : Java, C#

Ces trois approches peuvent être illustrées comme suit :

1. Les langues compilées sont des plats tout préparés. C'est bien de l'avoir sous la main, mais ça se gâte vite.
Les programmes écrits dans des langages compilés dépendent du système d'exploitation et du matériel

2. Les langues interprétées sont des aliments surgelés. Ils se conservent bien, mais ils sont longs à cuire
Les programmes écrits pour les langages interprétés sont très portables, fonctionnent partout où il y a un interprète, sont sûrs, mais...
Le processus de conversion prend du temps, ce qui a un impact sur les performances

3. Les langages combinés peuvent être comparés à des produits semi-finis. Il est rapide à préparer et peut se conserver longtemps. Mais comme vous le comprenez, le goût sera pire que celui des aliments fraîchement préparés.
Les programmes écrits dans des langages de programmation combinés sont limités par les fonctionnalités de leur interprète. Autrement dit, les capacités qu'un tel programme peut utiliser seront toujours inférieures à celles qu'un programme écrit dans un langage compilé peut utiliser.

Jusqu'à présent, nous avons parlé du fait qu'un programme écrit en langage de haut niveau, avant exécution il doit être compilé, c'est-à-dire traduit en langage machine composé de deux caractères correspondant à deux états stables. Compilateur- ça aussi programme informatique, dont l'entrée est un fichier avec le texte source écrit dans la langue haut niveau. Ce fichier est appelé dans de nombreux systèmes d'exploitation module source. Le compilateur traduit le programme en langage machine et l'écrit dans un autre fichier appelé module objet.

Dans les cas les plus simples, le contenu d'un module objet peut être chargé dans la RAM et exécuté. Mais le plus souvent, avant d'exécuter un module objet, il faut mettre ensemble (lien) avec d'autres modules objets contenant modules supplémentaires programmes, fonctions système, informations de service et autres données nécessaires à l'exécution du programme.

La mise en page est effectuée programme spécial, soi-disant "linker" (éditeur de liens) ou rédacteur en communication. Son entrée est constituée de fichiers avec des modules objets et sa sortie est module exécutable (module exécutable)– un fichier avec un programme complètement prêt à être exécuté. Ce fichier est chargé dans la RAM et exécuté.

Très souvent, la compilation et la liaison sont combinées en une seule activité. Pour ce faire, le compilateur reçoit une instruction spéciale et, immédiatement après son travail, il appelle lui-même l'éditeur de liens. Pour le programmeur, tout cela apparaît comme un processus unique, seuls les messages apparaissent sur l'écran d'affichage concernant la fin de la compilation et le début de la liaison.

Tout ce qui est décrit ci-dessus est typique des langages de programmation compilés. Une autre classe de langages qui constituent les langages de programmation interprétés qui ne nécessitent ni compilation ni liaison. Ce sont également des langages de haut niveau, c'est pourquoi les programmes qui y sont écrits sont souvent appelés scripts (scénario) ou scénarios, nécessitent une traduction en langage machine. A cet effet, il est créé programme d'interprétation opérateur enregistré dans le programme. Contrairement à un compilateur, un programme interpréteur ne traduit pas l'intégralité du texte en langage machine, mais chaque instruction séparément, et exécute immédiatement le code machine résultant.

L'interprétation d'un programme est plus lente que l'exécution d'un exécutable car chaque instruction est d'abord convertie en code machine. De plus, des erreurs peuvent survenir de manière inattendue au cours du processus d’interprétation, car le texte source n’est pas examiné à l’avance pour rechercher les erreurs.

Cependant, les langages interprétés sont largement utilisés en raison de la facilité de création de programmes avec eux. Le programme peut être écrit et exécuté immédiatement sans transformations préalables. Si les performances du programme semblent insatisfaisantes, son texte peut être modifié et le programme peut être immédiatement réexécuté sans aucune recompilation.

Dans la programmation moderne, la différence entre les langages compilés et interprétés est floue. Cette fusion se produit dans deux directions. D'une part, les compilateurs sont créés pour les langages interprétés. La langue interprétée classique a toujours été considérée comme la langue BASIQUE, mais maintenant de nombreux compilateurs ont été écrits pour cela. Le programmeur a le choix. Un programme écrit en BASIQUE, peut être interprété et exécuté immédiatement, ou peut être précompilé dans un module exécutable et exécuté à un autre moment plus opportun.

D’un autre côté, les interprètes ont appris à sauvegarder le code machine des instructions déjà interprétées et exécutées. Lors de l'exécution répétée de ces instructions, par exemple en boucles, l'interprète utilise des instructions machine prêtes à l'emploi, ce qui accélère considérablement le travail. Ces interprètes sont appelés Interprètes JIT (Juste à temps). Ils travaillent beaucoup plus vite que les interprètes classiques et sont donc de plus en plus répandus.

Il ne fait aucun doute que PHP est l'un des langages les plus populaires parmi les développeurs et les aide à créer des applications Web innovantes et dynamiques. Les développeurs PHP continuent de rechercher des outils PHP utiles et pratiques qu'ils peuvent utiliser pour rendre leur flux de travail et leurs tâches liées au Web plus faciles, plus rapides et meilleures. Il existe de nombreux outils PHP disponibles sur Internet pour les développeurs PHP, mais trouver un outil PHP approprié est une tâche assez ardue et demande des efforts et du temps.

Pour économiser votre temps et vos efforts précieux, j'ai rassemblé certains des meilleurs outils PHP pour les développeurs qui vous aideront dans vos tâches de développement et vous permettront de créer des applications Web innovantes et utiles.

Si vous aimez l’article, vous pourriez être intéressé par notre autre article sur.

1. Barre de débogage

DebugBar est un logiciel gratuit et source ouverte application qui peut s'intégrer à n'importe quel projet PHP et collecter + présenter des données de profilage. Il n'a aucune dépendance, prend en charge les requêtes Ajax et inclut des collecteurs de données génériques et des collecteurs pour des bibliothèques bien connues. La barre est 100 % JavaScript et se trouve dans le pied de page (comme Dev. Tools). De nouveaux collecteurs et vues peuvent être ajoutés facilement et il est possible de sauvegarder/réexécuter les demandes précédentes.

2. FTP Monsta


Monsta FTP est un cloudware PHP/Ajax open source qui place la gestion des fichiers FTP directement dans votre navigateur, n'importe où et à tout moment. Vous pouvez glisser-déposer des fichiers dans votre navigateur et les regarder se télécharger, comme par magie. Il prend en charge l'édition de fichiers à l'écran. Il existe également un support multilingue. Il a été testé sur Chrome, Firefox, Internet Explorer et Safari. Il est publié sous licence publique générale GNU. Vous pouvez le télécharger gratuitement et l'installer sur votre propre serveur.


Phalcon PHP est un framework Web fourni sous forme d'extension C offrant des performances élevées et une consommation de ressources réduite. Phalcon PHP est écrit en C en gardant à l'esprit l'indépendance de la plate-forme. En conséquence, Phalcon PHP est disponible sur Microsoft Windows, GNU/Linux, Mac OS X. Vous pouvez soit télécharger un package binaire pour le système de votre choix, soit le construire à partir de sources.

4.Pinba


Pinba est un moteur de stockage MySQL qui agit comme un système de surveillance/statistiques en temps réel serveur pour PHP utilisant MySQL comme interface en lecture seule. Il accumule et traite les données envoyées via UDP par plusieurs processus PHP et affiche les statistiques sous une forme lisible par l'homme de simples « rapports », fournissant également une interface en lecture seule aux données brutes afin de permettre la génération de rapports et de statistiques plus sophistiqués. .

5. CaseBox


CaseBox est une application Web open source et optimisée par PHP/MySQL pour le stockage et la gestion des enregistrements, des tâches et des fichiers. Il possède une interface de type bureau où nous pouvons créer un niveau illimité de répertoires et stocker des éléments dans la structure préférée. Des tâches avec des délais peuvent être créées, attribuées aux utilisateurs et la progression peut être facilement suivie. Nous pouvons également y stocker les informations des clients et un nombre illimité de fichiers. Le contenu des fichiers est indexé de sorte que la localisation d'un fichier PDF/Word.. avec son contenu est assez rapide.

6. Munée


Munee est une bibliothèque tout-en-un qui gère de nombreuses choses liées à l'optimisation et à la manipulation des actifs du site Web. La bibliothèque dispose d'une puissante fonctionnalité de mise en cache qui peut mettre en cache les ressources côté serveur et côté client. Il s'intègre bien à la bibliothèque de manipulation d'images PHP : Imaginez pour redimensionner ou recadrer les images (et les mettre en cache ensuite). Munee peut compiler automatiquement LESS, SCSS et CoffeeScript. Et il peut combiner des fichiers CSS + JS en une seule requête. De plus, ces fichiers CSS-JS peuvent être réduits pour de meilleures performances.

7. PHPImageAtelier


PHPImageWorkshop est une classe open source utilisant la bibliothèque GD qui vous aide à gérer les images avec PHP. Ce cours est pensé comme un logiciel de retouche photo comme Photoshop et GIMP : vous pouvez superposer plusieurs calques ou même des groupes de calques, chaque calque ayant une image de fond.
Le cours a été pensé pour être le plus flexible possible : superposition d'une infinité d'images (pour ajouter un filigrane), rotation (et pas seulement 45 / 90°), redimensionnement, recadrage (vignette). Un objet ImageWorkshop est à la fois un calque ET un groupe. Il a une image d’arrière-plan et une pile de sous-couches au-dessus de son arrière-plan.


Sylius est un open source et gratuit Solution e-commerce pour PHP (et basée sur Symfony2). Il est capable de gérer des magasins de toute taille et ayant des produits + catégories complexes. Les produits peuvent avoir différents taux de taxe, de nombreuses méthodes d'expédition sont prises en charge et il est intégré à Omnipay (bibliothèque de traitement des paiements multi-passerelles).

9. Pico


Pico est une application CMS open source capable de très peu de choses, ce qui est le point principal. Il utilise des fichiers plats comme base de données et est construit avec PHP. Simplement, il n’y a aucune configuration et l’application fonctionne instantanément. Le contenu est stocké dans des fichiers .md, le formatage markdown est utilisé et il peut être modifié dans votre favori éditeur de texte. Pour les conceptions/thèmes, Pico utilise le moteur de modèles Twig et il est bien documenté.


phpMyFAQ est une F.A.Q PHP assez stable et open source. application qui possède de nombreuses fonctionnalités pour créer une bonne F.A.Q. système. Une interface d'administration puissante existe pour gérer les catégories, les entrées, les utilisateurs et également afficher les statistiques. Il est possible de permettre aux utilisateurs de poser ou de répondre à des questions et de les commenter ou de le conserver uniquement pour les administrateurs. Il existe un système de recherche avancé permettant aux utilisateurs de localiser facilement les réponses associées. La F.A.Q. La page contient des modules prêts à l'emploi tels que « questions les plus populaires, les plus récentes ou les plus délicates ». Son apparence peut être personnalisée avec HTML-CSS, son interface prend en charge plusieurs langues et toutes les questions-réponses peuvent être exportées au format PDF (avec table des matières automatisée).

Aujourd'hui, cher lecteur, je vous propose de continuer à étudier la programmation PHP en utilisant le framework Kohana 3.1. Je consacrerai cet article et ce didacticiel vidéo au sujet de la publication de documents à partir du panneau d'administration.

Plan d'action pour aujourd'hui :

  • Dans le panneau d'administration, créez un formulaire pour ajouter des matériaux. Le formulaire d'ajout contiendra une liste déroulante avec les noms des catégories (le matériel publié sera ajouté à la catégorie sélectionnée) et une zone pour saisir le contenu textuel du matériel lui-même (textarea).
  • Attachez l'éditeur visuel CKEditor à la zone de saisie du contenu matériel.
  • Protégez le matériel d’entrée de l’injection de scripts JavaScript. Il existe une bibliothèque spéciale qui purifie le contenu de JavaScript, appelée HTML Purifier (le problème de l'éventuelle introduction de JavaScript malveillant dans le contenu du site est décrit ci-dessous).

Tutoriel vidéo

Dès la connexion éditeur visuel le problème se pose de l’éventuelle introduction de JavaScript malveillant dans le contenu. Le fait est que l'éditeur visuel modifie le formatage du texte en ajoutant des balises HTML. Ainsi, pour préserver la mise en forme du contenu, il faut envoyer le code HTML obtenu grâce à l'éditeur visuel à la base de données, sans remplacer les balises HTML par des entités de texte (c'est-à-dire sans « tracer » la fonction PHP htmlspecialchars). Parallèlement au balisage HTML, du JavaScript malveillant peut facilement être envoyé à la base de données et exécuté avec succès sur la page d'affichage du matériel.

La solution au problème de l'implémentation de JavaScript consiste à connecter la bibliothèque de filtres HTML Purifier. Une version adaptée de Purifier for Kohana 3.1 peut être téléchargée sur GitHub.

Laissez-moi vous expliquer le processus de connexion de HTML Purifier à Kohana 3.1 :

  • L'archive téléchargée depuis GitHub doit être décompressée dans le dossier kohana\www\modules\htmlpurifier\
  • Téléchargez depuis. Site Web HTML Purifier la dernière version de la bibliothèque et copiez son contenu dans le dossier kohana\www\modules\htmlpurifier\vendor\htmlpurifier\
  • Ajoutez des instructions pour connecter le nouveau module Purifier au fichier bootstrap.php : recherchez le code "orm" => MODPATH."orm", et juste en dessous ajoutez la ligne "htmlpurifier" => MODPATH."htmlpurifier".

Nous pouvons maintenant utiliser la méthode Sécurité : xss_clean ($ content) pour effacer le contenu d'une variable $contenuà partir de Javascript. Cette méthode sera directement appliqué dans le Listing 3 du modèle Matériaux (voir ci-dessous).

Listing 2. Code du contrôleur qui gère l'enregistrement du matériel dans la base de données

If(isset($_POST["materialsavebtn"])) ( $categoryId = Arr::get($_POST, "categoryId", ""); $content = Arr::get($_POST, "content", "" ); $material = ORM::factory("material"); $material->addMaterial($categoryId, $content::initial()->redirect("admin");

Comme le montre la ligne 7, le modèle Material (dans lequel nous avons créé) doit être complété par la méthode addMaterial(), qui stocke directement le matériau dans la base de données. Le code de la méthode addMaterial() est présenté dans le listing 3.

Listing 3. Une méthode de persistance matérielle qui étend les capacités du modèle Material

Fonction publique addMaterial($categoryId, $content) ( $this->category_id = $categoryId; $this->content = Security::xss_clean($content); $this->save(); )

Voir nouvelle méthode sur la ligne 4 ? Il s'agit exactement de la même protection contre l'introduction de JavaScript dans le contenu du site. Désormais, tout code écrit dans les balises ... sera supprimé.

Il est temps de montrer très moyen pratique en remplissant les champs ctime et mtime de la table des matériaux (les champs stockent respectivement l'heure de création et de modification du matériau).

Il suffit d'écrire deux lignes au début de la déclaration du modèle Matériau :

Protégé $_created_column = array("column" => "ctime", "format" => TRUE); protected $_updated_column = array("column" => "mtime", "format" => TRUE);

Kohana insérera automatiquement l'heure de création ou de modification d'un enregistrement dans la base de données au format horaire Unix.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :