Question

Je lisais un article/interview (La Langue De La Guerre:PHP vsRuby (par Jeffrey Façon;Mar 2011)) par un développeur pour Envato à l'aide de Ruby.Il dit, "PHP est un framework web déguisé comme un langage".

Il n'a pas à disserter sur cette déclaration, il m'a demande si c'est vrai, et si oui, comment.J'ai fait un peu de recherche, mais ne pouvait pas tous les renseignements sur ce sujet.Je me demande comment cet énoncé est vrai et ce qui le rend PHP pas un langage de programmation.Et pourquoi d'autres langages comme python ou ruby rentre pas dans cette catégorie?

Était-ce utile?

La solution

Officiellement:

PHP est un langage de script à usage général largement utilisé qui convient particulièrement au développement Web et peut être intégré à HTML.

Selon http://us.php.net/

Mais ce n'est pas nécessairement une description très appropriée.

PHP est un langage informatique complet. Toutefois, toute distribution de PHP va venir avec un nombre énorme de bibliothèques standard, tant pour que les bibliothèques PHP standard puissent être classées comme cadre.

Par conséquent, lorsque vous avez regardé de cette manière, PHP est soit:

un cadre avec son propre langage de script complet.

ou

une langue enveloppée dans un cadre Web massif, à partir duquel il ne peut pas être supprimé.

Toutefois, si nous examinons le nom "PHP: préprocesseur hypertexte" (PHP), cela implique que PHP est un "préprocesseur" (ce préproduction hypertexte) - ni un cadre, ni un langage, mais un logiciel.

Lorsque vous le regardez de cette façon, PHP est une application qui dirige des scripts dans une langue exclusive, avec accès à un cadre interne important conçu pour traiter l'hypertexte.

Par conséquent: PHP ne peut pas être correctement classé comme un cadre ou une langue. La vérité est qu'il existe une langue, un cadre et une application, que tous ont le même nom (car ils sont tous rougés dans une seule chose)! Ainsi, "php" peut faire référence à n'importe quelle partie du système.

Autres conseils

Je n'ai pas de sources - mais la déclaration a un peu de sens, même si cela pourrait être une tentative de susciter la controverse.

php est définitivement une langue, et pas beaucoup de cadre - mais si vous regardez le manuel PHP, par exemple, la spécification C ou C ++, le corps de fonctionnalité que PHP offre des élémentsCela serait considéré dans le domaine d'un cadre: la manutention du XML, etc., ce qui serait normalement inclus dans un cadre comme Qt.

La chose avec PHP, c'est que ce n'est pas seulement un langage de programmation, mais un écosystème complet, composé de:

  • Le PHP langage de programmation lui-même
  • Un moteur d'exécution qui peut se connecter à un serveur web (par mod_php ou CGI/FastCGI), et offre de nombreuses façons d'interagir avec elle
  • Une grande bibliothèque de fonctions et de classes, nombre d'entre eux liés au web

PHP fournit des fonctionnalités dans la langue elle-même qui sont très spécifiques à la programmation web, tels que les superglobales ($_SERVER, $_GET, $_POST, $_COOKIE, etc.), le saut entre PHP en mode et en mode HTML à l'aide de <?php ?> tags, etc., et sa sémantique est construit autour de l'un-processus-par-requête d'exécution du modèle qui était la norme dans les premiers jours de serveur-côté de la programmation web.PHP a commencé comme un web outil de script, et seulement évolué dans un (un peu) de programmation à usage général de la langue plus tard;la version CLI et d'autres non-fonctionnalités web, même si elles peuvent souvent être utilisé très efficacement, une réflexion après coup, et avec suffisamment d'exposition à la langue et à son écosystème, cela peut devenir douloureusement évident à la fois.

En revanche, la plupart des autres langages de programmation ont été conçus comme usage général, les systèmes ou les langages de programmation d'application depuis le début, et rien de spécifique à la programmation web vient dans les bibliothèques.Si vous voulez faire de la programmation web, par exemple, Python, vous avez besoin d'un framework web, ou au moins une bibliothèque à mettre en œuvre serveur web liaisons et des choses comme la demande d'analyse, de modèles HTML et gestion de session, et probablement certains sgbd trop (sauf si vous êtes vraiment hardcore et écrire tout ce que à partir de zéro).

PHP a toutes ces choses sont intégrés par défaut, et c'est pourquoi les gens aiment à dire que PHP est un framework web en lui-même.

Pour un "Bonjour, monde!" application web en Python, vous feriez habituellement un virtualenv, installer des bibliothèques, de mettre en place certains passe-partout pour le framework web, définir des itinéraires, et d'écrire un gestionnaire qui génère une réponse avec "Hello, world!" dans le corps;en PHP, c'est une question de rédaction <?php echo "Hello, world!" dans index.php en le copiant à apache docroot, et de permettre de mod_php.Le reste (accrochage dans le serveur, l'analyse des demandes, la génération de réponses, etc.) arrive encore, mais PHP prend en charge pour vous.

php n'est pas une langue Web.Son a intégré des fonctionnalités de programmation dans une application Web.Développer une application Web en PHP est très facile par rapport à d'autres langues telles que Java, ASP, C #.

Si vous souhaitez développer une application Web qui n'est pas si énorme et utilise une base de données avec moins de taille (peu de gb), vous pouvez développer une application Web PHP.Il existe de nombreuses entreprises hôtes Web qui fournissent une hébergement Web basée sur PHP chargant très moins de prix avec toutes les fonctionnalités. Maintening Un site PHP est moins comparé à Java / ASP.PHP est une application Web léger en poids.

Ryan formera probablement son opinion sur la base d'une perspective historique. Historiquement, PHP était censé être une langue Web. Historiquement, de nombreuses fonctionnalités de la langue ont été conçues pour ce cas d'utilisation et, en fait, PHP est utilisé pour «page d'accueil personnelle». http://www.nusphere.com/php/php_history.htm

Mais maintenant, PHP a beaucoup développé et je dirais personnellement que ce n'est pas vraiment vrai.

juste 2 exemples:

Les threads n'ont été ajoutés que dans la langue récemment. Pendant longtemps, cela n'était tout simplement pas possible. Les threads sont quelque chose qui n'a pas de sens dans un environnement Web (au lieu de cela, vous avez tendance à donner un coup de pied d'un processus d'arrière-plan complètement neuf ou laissez-vous passer un message à travers un Quotieur d'ailleurs). http://uk3.php.net/manual/fr /book.ppthreads.php

Gestion de la mémoire et des ressources. PHP fournit une méthode __Destruct () sur des objets, de sorte que vous puissiez éclaircir les ressources. Mais pour commencer, cela n'a été appelé que sur l'arrêt du script. Maintenant, dans un environnement Web, cela a du sens car vous voulez seulement que votre script soit exécuté 0.5Secs à Max, l'arrêt du script n'est donc jamais loin. Mais pour une longue course à pied ou script shell, c'est terrible. Les versions ultérieures de PHP ont fixé ceci. http://php.net/manual/fr/language.oop5.decon.php

Cependant, vous avez toujours tendance à trouver PHP utilisé dans un contexte Web et de serveur et non un contexte d'application de bureau - il s'agit donc d'où il s'agit d'où beaucoup de l'accent sont.

Licencié sous: CC-BY-SA avec attribution
scroll top