OVH Cloud OVH Cloud

Mon premier pas en PHP5 ...

18 réponses
Avatar
Fuxy
Bonjour à tous,

Je ne connais pas du tout PHP, je sais juste qu'il s'agit d'un langage
de programmation orienté Web (enfin je crois)

Ma question est la suivante, peut on faire un programme qui ne soit pas
en rapport avec le Web en PHP, c'est à dire, est ce que PHP est un vrai
langage de programmation, comme C, Delphi, etc ... ou est ce plus proche
du HTML ?

Je recherche un langage simple, multiplateforme et open source, pour
faire des petites applications sous Linux

J'ai essayé Python, mais je trouve peu de Doc en Français, et il me
semble que PHP soit plus moderne.

Merci

10 réponses

1 2
Avatar
Benoit F
Je ne connais pas du tout PHP, je sais juste qu'il s'agit d'un langage
de programmation orienté Web (enfin je crois)
Au début, c'était effectivement le cas.


Ma question est la suivante, peut on faire un programme qui ne soit pas
en rapport avec le Web en PHP, c'est à dire, est ce que PHP est un vrai
langage de programmation, comme C, Delphi, etc ... ou est ce plus proche
du HTML ?
Tout a fait, comme tout script shell, perl, ou même batch (pour windows)

un "#!/bin/usr/php" au début du fichier puis un
"chmod +x tonfichier.php" et le programme s'exécute par "./tonfichier.php"
Il intègre tout ce que tu as besoin pour faire des script
d'administration très puissant

Je recherche un langage simple, multiplateforme et open source, pour
faire des petites applications sous Linux
J'ai essayé Python, mais je trouve peu de Doc en Français, et il me
semble que PHP soit plus moderne.
Python est sorti aprés php si je ne m'abuse. Php est un langage très

très populaire, on trouve donc énormément de doc sur internet ainsi que
des exemples variés. Je ne connais pas assez python pour te faire un
comparatif argumenté des deux langages, mais je pense qu'il est tout
aussi utilisable que php pour faire des scripts shell.
Je pense qu'il faut que tu te tournes vers le langage que tu connais le
mieux ou celui qui te semble le plus facile à utiliser.

--
Benoit F.

Avatar
John Gallet
Bonjour,

Je ne connais pas du tout PHP, je sais juste qu'il s'agit d'un langage
de programmation orienté Web (enfin je crois)


C'est son utilisation principale en effet.

Ma question est la suivante, peut on faire un programme qui ne soit pas
en rapport avec le Web en PHP, c'est à dire, est ce que PHP est un vrai
langage de programmation, comme C, Delphi, etc ... ou est ce plus proche
du HTML ?


Oui, oui à moitié et non.

Oui pour tout type d'application type batch de traitement (genre je
fournis du xml en entrée et je veux du PDF ou du JPG en sortie).
Oui à moitié pour une application autonome (sans serveur web) mais avec
clickodrome, voir php-gtk sur http://gtk.php.net/
Non à mon sens pour une application qui est un daemon. C'est
techniquement faisable, mais ça reste de la bidouille par rapport à la
robustesse apportée par la même chose écrite directement en C.

Impossible donc de répondre vraiment si tu ne décris pas un minimum ce
que doit faire ton appli.

a++
JG

Avatar
Bruno Desthuilliers
Fuxy wrote:
Bonjour à tous,

Je ne connais pas du tout PHP, je sais juste qu'il s'agit d'un langage
de programmation orienté Web (enfin je crois)


C'est à peu près ça... Même si il tends à devenir plus généraliste.

Ma question est la suivante, peut on faire un programme qui ne soit pas
en rapport avec le Web en PHP,


Oui. <avis-perso>ce n'est pas forcément le choix que je ferais, mais
bon...</avis-perso>

c'est à dire, est ce que PHP est un vrai
langage de programmation, comme C, Delphi, etc


C'est quoi un "faux" langage de programmation ?-)

PHP est un langage "de script" (ce qui ne veut pas dire grand chose en
soit, si ce n'est qu'il n'est pas compilé en natif et qu'il est
dynamiquement typé).

... ou est ce plus proche
du HTML ?


Non, c'est un langage de programmation, avec des variables, des boucles,
des branchements, des fonctions, etc....

Je recherche un langage simple, multiplateforme et open source, pour
faire des petites applications sous Linux


Python.

J'ai essayé Python, mais je trouve peu de Doc en Français,


Il y en a pourtant. Mais dis toi bien que quelque soit le langage, tu ne
pourra pas faire l'économie de la doc en anglais (pour info, la
traduction française de la doc de PHP est truffée d'erreurs et de
contre-sens, et je ne te recommande pas de l'utiliser).

et il me
semble que PHP soit plus moderne.


oops...

(5 minutes plus tard, en remontant de dessous la table, et après avoir
essuyé le café sur le clavier et l'écran...)

Merci pour ce moment de franche rigolade. Je ne sais pas ce qui peut
t'avoir donné cette impression, mais honnêtement, c'est plutôt l'inverse.

NB : je peux développer mon argumentation sur ce point, mais je crains
de devenir un peu trollesque...

Merci
De rien

Bruno

Avatar
Misterjack
Salut !


Je ne connais pas du tout PHP, je sais juste qu'il s'agit d'un langage
de programmation orienté Web (enfin je crois)


A la base oui.

Ma question est la suivante, peut on faire un programme qui ne soit pas
en rapport avec le Web en PHP, c'est à dire, est ce que PHP est un vrai
langage de programmation, comme C, Delphi, etc ... ou est ce plus proche
du HTML ?


On peut faire un programme quasi-autonome en PHP, mais il nécessite
d'avoir PHP installé sur la bécanne. PHP n'est pas compilé mais
interprété donc on ne peut pas le comparer à C ou Delphi.
PHP est un langage de programmation (de script...) et pas de description
comme HTML. Rien à voir.

Je recherche un langage simple, multiplateforme et open source, pour
faire des petites applications sous Linux


Simple : tous les langages sont simples dès qu'on a apprit à les
connaître (bien que Java... non je dis rien !).
Multiplateforme : C,C++,Java,Fortran,Pascal,... peuvent être considéré
multiplateforme, mais c'est pas rigoureux.
Open-source : je ne vois pas de signification à ça... mais s'il s'agit
de trouver un compilateur open-source tous les langages sont possibles.
Donc : tout est bon.

J'ai essayé Python, mais je trouve peu de Doc en Français, et il me
semble que PHP soit plus moderne.


Bof. Plus ou moins moderne ne change pas grand chose. Et les docs on les
trouve.

Perso je te conseille de voir les avis des pros sur les forums de C,
C++, java, etc. Ce sont de "vrais" (bof) langages qui permettent de
créer des applis autonomes et puissantes. L'apprentissage n'est pas
forcément plus complexe.

Cordialement,
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"

Avatar
loufoque
Fuxy a dit le 24/09/2004 08:28:

Ma question est la suivante, peut on faire un programme qui ne soit pas
en rapport avec le Web en PHP, c'est à dire, est ce que PHP est un vrai
langage de programmation, comme C, Delphi, etc...
Oui.

Enfin c'est plus comme Perl ou Python.

J'ai essayé Python, mais je trouve peu de Doc en Français, et il me
semble que PHP soit plus moderne.
Python pas moderne...

On aura tout entendu.

Avatar
loufoque
John Gallet a dit le 24/09/2004 09:06:
Non à mon sens pour une application qui est un daemon. C'est
techniquement faisable, mais ça reste de la bidouille par rapport à la
robustesse apportée par la même chose écrite directement en C.


Argumente donc.
Je ne vois pas où est la bidouille.

Avatar
John Gallet
Re,


Non à mon sens pour une application qui est un daemon. C'est
techniquement faisable, mais ça reste de la bidouille par rapport à la
robustesse apportée par la même chose écrite directement en C.


Argumente donc.
Tu as raison, ce n'est pas très parlant.


Je ne vois pas où est la bidouille.


C'est clairement greffé par dessus. Par exemple, l'extension pnctl n'est
pas portable. Pareil pour les sémaphores, la mémoire partagée, les
signaux bref tout les IPC autres que les sockets. Parlons de l'extension
socket (au sens : serveur) : elle est clairemnt indiquée comme...
expérimentale. (http://fr2.php.net/manual/en/ref.sockets.php )

Regardons alors le premier exemple sur cette page : set_time_limit(0);

Oui, si on peut... Autrement dit, pour faire cohabiter php en version
"web" avec une version deamon, il faut "bidouiller" avec les options de
compil et des php.ini différents pour tripatouiller le safe_mode par
exemple (set_time_limit() désactivé si safe mode on).

Je n'ai pas dit qu'il est impossible de faire un deamon en php. En
revanche on oublie toute portabilité (ce qui est fichtrement corniaud !)
et à mon sens ces fonctions sont une verrue. Elles ont d'ailleurs été
introduites un peu tardivement (4.1) (oui je sais, pour certains, lire
que la 4.1 c'est "tardif", ça va faire jaser dans les chaumières, mais
n'oublions pas qu'il y a eut un bail entre le début de php et la version
4.0, sans compter la 4.1).

Autrement dit, je ne mettrai pas en production un daemon écrit en php,
ou alors un truc non sensible qui ne fait pas grand chose.

En revanche, je suis tout à fait pour l'utilisation en tant que batch
(au lieu de s'emmerder avec du awk et du sed par exemple, qui n'ont pas
de connexion SGBD donc il faut scripter les requêtes, bref, le souk non
portable alors que php fait ça très bien).

a++
JG


Avatar
Marc


C'est clairement greffé par dessus. Par exemple, l'extension pnctl n'est
pas portable. Pareil pour les sémaphores, la mémoire partagée, les
signaux bref tout les IPC autres que les sockets. Parlons de l'extension
socket (au sens : serveur) : elle est clairemnt indiquée comme...
expérimentale. (http://fr2.php.net/manual/en/ref.sockets.php )


pourtant quand je vois cela, je me dis que c'est pas si sorcier ...

http://pear.php.net/manual/en/package.networking.net-server.example.php

Avatar
loufoque
John Gallet a dit le 27/09/2004 15:40:
C'est clairement greffé par dessus. Par exemple, l'extension pnctl n'est
pas portable. Pareil pour les sémaphores, la mémoire partagée, les
signaux bref tout les IPC autres que les sockets.
Faire un deamon en C pour un système posix n'est pas portable sur un

système windows.
Pourtant, on ne parle pas de bidouille.

Parlons de l'extension
socket (au sens : serveur) : elle est clairemnt indiquée comme...
expérimentale. (http://fr2.php.net/manual/en/ref.sockets.php )
On peut utiliser les sockets sans l'extension sockets, avec les

fonctions natives de PHP5, qui ne sont pas du tout experimentales
(d'ailleurs, PHP est très fier de son API des flux).

Regardons alors le premier exemple sur cette page : set_time_limit(0);

Oui, si on peut... Autrement dit, pour faire cohabiter php en version
"web" avec une version deamon, il faut "bidouiller" avec les options de
compil et des php.ini différents pour tripatouiller le safe_mode par
exemple (set_time_limit() désactivé si safe mode on).
À partir du moment où on lance un tel processus, on le lance en ligne de

commande (qui n'a aucune limite de temps).
Et par défaut, aucune fonction de PHP n'est désactivée. Le safe mode,
c'est uniquement sur quelques hebergements webs gratuits, ce qui ne
correspond pas du tout à une plateforme de prédilection pour un deamon.

Je n'ai pas dit qu'il est impossible de faire un deamon en php.
C'est même beaucoup plus facile qu'avec un autre langage.


En
revanche on oublie toute portabilité (ce qui est fichtrement corniaud !)
Il faudra m'expliquer pourquoi cette histoire de portabilité est si

gênante...
On ne peut pas faire un pcntl_fork() sans utiliser cygwin sous windows ?
(c'est quand même assez fiable d'ailleurs) Et alors ? Il faudrait déjà
être assez fou pour faire un serveur de production sous windows.

et à mon sens ces fonctions sont une verrue.
C'est tout de même des fonctions systèmes, donc indispensables pour tout

langage de programmation qui se respecte.
Car si il y a bien un truc qu'on ne puisse pas reprogrammer dans le
langage, ce sont elles.
Il y a des dizaines de trucs dans PHP bien moins utiles.


Elles ont d'ailleurs été
introduites un peu tardivement (4.1) (oui je sais, pour certains, lire
que la 4.1 c'est "tardif", ça va faire jaser dans les chaumières, mais
n'oublions pas qu'il y a eut un bail entre le début de php et la version
4.0, sans compter la 4.1).
Des fonctions bien plus fondamentales n'ont été incluses qu'à partir de

PHP5.
Et désolé de vous décevoir, mais PHP4.1, c'est obsolète.

Autrement dit, je ne mettrai pas en production un daemon écrit en php,
ou alors un truc non sensible qui ne fait pas grand chose.
C'est sûr que quand on connait trop peu le sujet, mieux ne vaut pas s'y

risquer.

Avatar
John Gallet
Re,

Faire un deamon en C pour un système posix n'est pas portable sur un
système windows.
Première nouvelle. Bien sûr que si, à grand coups de #ifdef dans tous

les coins. J'interviens sur un daemon C qui tourne sur du VMS, tous
types d'unix et windows, c'est le même code qui est compilé partout. Et
avec de la mémoire partagée (pas de signaux, c'est trop orienté unix).

Pourtant, on ne parle pas de bidouille.
Si c'est ce terme là qui chagrine, je veux bien mettre autre chose : non

mature et devant *à mes yeux* faire ses preuves en environnement
de production. Je rappelle qu'il ne s'agit que de **mon** opinion.

On peut utiliser les sockets sans l'extension sockets, avec les
fonctions natives de PHP5, qui ne sont pas du tout experimentales
(d'ailleurs, PHP est très fier de son API des flux).
Très bien, sachant que php5 n'a même pas 6 mois et qu'on en est déjà la

deuxième release, moi je ne mets pas en prod.

En revanche, si effectivement on a maintenant au moins cette partie là
en véritablement portable (j'aime bien le commentaire "Depending on the
environment, Unix domain sockets may not be available") on aura fait un
pas dans la bonne direction de quelque chose de solide et réfléchi.

À partir du moment où on lance un tel processus, on le lance en ligne de
commande (qui n'a aucune limite de temps).
Et par défaut, aucune fonction de PHP n'est désactivée. Le safe mode,
c'est uniquement sur quelques hebergements webs gratuits, ce qui ne
correspond pas du tout à une plateforme de prédilection pour un deamon.
Relire ce que j'ai écrit. J'ai écrit que c'est chiant (comprendre :

prône à s'emmêler les crayons) de faire tourner les deux sur la même
machine. Et accessoirement je ne fais pas tourner une plateforme de
production web sans safe_mode et sans time_limit activé. Les boucles
infinies parce que le développeur a pas testé son boulot, ça me suffit
comme ça.

Je n'ai pas dit qu'il est impossible de faire un deamon en php.
C'est même beaucoup plus facile qu'avec un autre langage.

Jamais dit le contraire, et j'ai suffisement d'heures de vol en C pour

en être plus que convaincu.

En
revanche on oublie toute portabilité (ce qui est fichtrement corniaud !)
Il faudra m'expliquer pourquoi cette histoire de portabilité est si

gênante...
1) parce que c'est l'une des grandes forces de php que d'être PORTABLE.

Indépendant de l'OS. Quand tu as un programme écrit en C, à chaque
nouvel OS, tu peux avoir des gags (alignement mémoire, big-little
endian, etc...) donc une phase de recettage purement technique est
toujours nécessaire. Même entre un SCO et un AIX ou un Solaris, tu ne
compiles pas pareil et tu es obligé d'avoir des #ifdef différents.

2) parce que l'auteur de la question LE DEMANDE EXPLICITEMENT. Je
réponds à la question, c'est tout.

On ne peut pas faire un pcntl_fork() sans utiliser cygwin sous windows ?
Pas à ma connaissance.

http://fr2.php.net/manual/en/ref.pcntl.php
"Note: This extension is not available on Windows platforms".


(c'est quand même assez fiable d'ailleurs) Et alors ? Il faudrait déjà
être assez fou pour faire un serveur de production sous windows.
1) c'est ton opinion, c'est aussi la mienne, mais ça ne répond pas à la

question d'origine.
2) et tes watt-milliards de serveurs de dev ? Tu as une équipe de 20
développeurs tous sous windows (parce que c'est comme ça dans la boite
et t'as pas le choix) tu fais COMMENT pour qu'ils testent leur code dans
se pourrir la vie les uns les autres ? Faut arrêter de voir le
développement informatique par le petit bout de la lorgnette. La réalité
de la vie en entreprise fait que moins on a de contraintes sur le
système d'exploitation, mieux ça vaut
3) si tu as un contrat à 2 millions d'euros mais que le client te dit
qu'il veut que ça tourne (aussi) sur micromou, tu peux émettre des
réserves et des recommandations mais je t'assure que ça tournera sous
micromou.

et à mon sens ces fonctions sont une verrue.
C'est tout de même des fonctions systèmes, donc indispensables pour tout

langage de programmation qui se respecte.
J'ai pas dit le contraire. Une verrue c'est une excroissance de code

ajoutée / greffée en vrac là où on peut comme on peut. C'est tout.

Car si il y a bien un truc qu'on ne puisse pas reprogrammer dans le
langage, ce sont elles.
Nous sommes bien d'accord : c'est bien pour ça que je regrette que ces

fonctions ne soient pas dispo sur tous les OS où elles ont un sens (hors
signaux, donc).

Il y a des dizaines de trucs dans PHP bien moins utiles.
Oui et ? J'ai pas dit le contraire.


Des fonctions bien plus fondamentales n'ont été incluses qu'à partir de
PHP5.
Je n'ai vu aucun ajout de fonctionnalités de base du langage qui m'aient

manquées depuis la 4.1.

Et désolé de vous décevoir, mais PHP4.1, c'est obsolète.
Oui et ? Que rapport avec ce que je disais ? Je faisais remarquer que

ces fonctions ont été introduites relativement tard.
De plus dans la série "revenons les pieds sur terre", j'ai encore des
clients qui tournent en php3.

Autrement dit, je ne mettrai pas en production un daemon écrit en php,
ou alors un truc non sensible qui ne fait pas grand chose.
C'est sûr que quand on connait trop peu le sujet, mieux ne vaut pas s'y

risquer.
Tout à fait d'accord. Je n'ai pas eut l'occasion de vraiment vérifier,

en conditions de prod, ce qu'il (php) a dans le ventre et ça
m'étonnerait que j'en ai l'occasion avant un moment.

a++
JG

PS : quand je parle d'une condition de production, je parle d'une
machine 365/H24 sur laquelle transitent des services payants ne
souffrant d'aucune interruption de service, genre bourse en line ou truc
comme ça. Pas de la gestion de contenu avec backend rss...


1 2