[PHP] Quelques questions diverses

J’ai quelques questions simples en PHP qui m’éviteront peut-être de faire des erreurs de “débutant” et de prendre tout de suite les bonnes pratiques avec ce langage.

1: La gestion des librairies.
J’ai l’habitude des librairies externes sous forme de Jar en Java et j’ai aussi l’habitude d’utiliser divers librairies en Perl disponible sur CPAN.org. Comment se situe PHP à ce niveau, y a-t-il des librairies à installer à tout prix ou faut-il se limiter à celles de base, comment se passe l’installation des librairies, est-ce possible sur des offres de ce type : http://commander.1and1.fr/produits/heberge…so-initial.html

2: La gestion des logs.
Une fois qu’on y a gouter, on ne peux plus s’en passer, que ça soit avec logback ou Log::Log4Perl, y a-t-il une API ou bibliothèque en PHP qui permet de faire du logging intelligent (activation/désactivation simple et configurable), toujours compatible avec l’offre ci-dessus.
[EDIT]
J’ai trouvé le package php-log sous Ubuntu qui répond à mes besoins, quid de l’installation avec l’offre de 1and1.fr ?
[/EDIT]

Et globalement, quels sont les pièges en PHP pour un développeur qui connait bien les langages Java et Perl, particulièrement au niveau du développement Objet, par exemple en Perl la programmation Objet est vraiment spéciale et les limitations sont nombreuses, est-ce pareille avec PHP5 ?

Je repond a la question 1:

Par defaut, php botte des cul. C’est un langage super complet. Mais tu peux tout à fait rajouter des librairies pour certains usages specifiques, envoie de mail, génération de pdf, histoire de te simplifier la tâche.

Ceci se fait par un simple include dans la page.

Concernant l’hebergeur, ils proposent généralement tout ce qu’il faut.

Concernant la gestion objet de PHP tout dépend de ta version en fait. PHP4 a une gestion objet assez bizarre et peu conventionnelle (voire pas optimisée, à déconseiller). Par contre PHP5 se recentre sur une gestion objet plus standard et performante. Y a foultitude de documentation à ce propos sur le net.

Je n’ai jamais eu besoin de plus de librairie que celles fournies en standard dans la plupart des offres d’hébergement mutualisées. Après faut distinguer deux types de librairies en PHP :

  • La librairie qui fait appelle à une autre brique système ou logiciel. Celle-ci doit au général être compilée avec PHP et donc pas moyen de l’installer sans avoir les droits de compilation sur le serveur (autant dire pas le droit sur du mutualisé).

  • La libraire PHP, en règle générale celle-ci se télécharge dans un répertoire de ton site et tu l’appelles via un include.

Concernant les choses dont il faut faire attention :

  • Le typage faible des variables, risque de surprise.
  • L’utilisation de variables non initialisées (chez un bon hébergeur ça va te lever un warning, mais pas forcément). Gros gros risque de surprises.
  • La gestion des valeurs passées en POST ou GET (va falloir te documenter). Là encore selon la configuration de ton hébergeur elle sont « préparées » ou pas et il faut en tenir compte (ou les passer dans une moulinette qui se charge de faire la détection).
  • L’organisation du code. Le fait qu’on ne dispose pas encore d’espace de noms en PHP tend à rendre la stratégie de stockage des fichiers complètement bordélique dès que le projet tend à grossir un peu. Faut être bien organisé. :slight_smile:

Quelques conseils :

  • Si tu es en PHP5 code objet. Tu vas déjà by-passer pas mal d’emmerdements liés à la non existence d’espace de nom (tes classes et tes fonctions feront office d’espace de noms en fait).
  • RTFM. :crying: La doc php sur php.net est ultra bien fichue (subjectif ceci dit, mais je peux pas m’en passer). Bien faire gaffe aux warnings qui parsèment la doc, ils ne sont pas là pour rien. :cry:

Bon courage. :stuck_out_tongue: