php - your - symfony naming




Quels sont les idiomes PHP utiles? (7)

Heureusement, les espaces de noms sont en 5.3 et 6. Je recommande fortement de ne pas utiliser l'idiome Path_To_ClassName. Il fait du code désordonné, et vous ne pouvez jamais changer la structure de votre bibliothèque ... jamais.

Le chargement automatique du SPL est génial. Si vous êtes organisé, il peut vous faire économiser le bloc typique de 20 lignes d'inclusions et nécessite en haut de chaque fichier. Vous pouvez également changer les choses dans votre bibliothèque de code, et aussi longtemps que PHP peut inclure à partir de ces répertoires, rien ne casse.

Faire un usage libéral de === sur == . Par exemple:

if (array_search('needle',$array) == false) {
  // it's not there, i think...
}

donnera un faux négatif si «aiguille» est à la touche zéro. Au lieu:

if (array_search('needle',$array) === false) {
  // it's not there!
}

sera toujours précis.

Je cherche à améliorer mon code PHP et je me demande quelles sont les techniques spécifiques à PHP que d'autres programmeurs utilisent pour améliorer la productivité ou les limitations de PHP.

Quelques exemples:

  1. Convention de dénomination de classe pour gérer les espaces de noms: Part1_Part2_ClassName correspond au fichier Part1/Part2/ClassName.php

  2. if ( count($arrayName) ) // handles $arrayName being unset or empty

  3. Noms de fonctions variables, par exemple $func = 'foo'; $func($bar); // calls foo($bar); $func = 'foo'; $func($bar); // calls foo($bar);


Je développe avec PHP (et MySQL) depuis 5 ans. Plus récemment, j'ai commencé à utiliser un framework ( Zend ) avec une bibliothèque javascript solide ( Dojo ) et cela a changé ma façon de travailler pour toujours (dans le bon sens, je pense).

La chose qui m'a fait penser à ceci était votre première balle: le framework Zend fait exactement cela car c'est une façon standard d'accéder aux 'contrôleurs' et aux 'actions'.

En termes de problèmes d'encapsulation et d'abstraction avec différentes bases de données, Zend_Db est très bien. Dojo fait un excellent travail d'aplanissement des incohérences javascript entre différents navigateurs.

Dans l'ensemble, cela vaut la peine de se familiariser avec les bonnes techniques de POO et l'utilisation (et la lecture de!) Des cadres a été une manière très pratique de comprendre les problèmes de POO.

Pour certains outils autonomes qui valent la peine d'être utilisés, voir aussi:

Smarty (moteur de modèle) ADODB (abstraction d'accès à la base de données)


Déclarez les variables avant de les utiliser!


  1. Activer AVIS, et si vous voulez vraiment signaler les erreurs STRICT. Cela évite beaucoup d'erreurs et d'odeurs de code: ini_set('display_errors', 1); error_reporting(E_ALL && $_STRICT); ini_set('display_errors', 1); error_reporting(E_ALL && $_STRICT);
  2. Restez à l'écart des variables globales
  3. Gardez autant de fonctions que possible. Il lit plus facile, et est facile à maintenir. Certaines personnes disent que vous devriez être en mesure de voir toute la fonction sur votre écran, ou, au moins, que les crochets de début et de fin des boucles et des structures dans la fonction devraient être à la fois sur votre écran
  4. Ne faites pas confiance à l'entrée de l'utilisateur!

Merci à tous pour vos réponses. Il y a un truc très utile ici.

J'ai un léger problème avec le point sur les espaces de noms (et ne pas utiliser l'approche Path_To_ClassName ) parce que la fonctionnalité a pris beaucoup de temps pour arriver IMO et 5.3 alpha1 n'est pas encore prêt pour la production. Donc, le reste d'entre nous a fait avec tout ce qui fonctionne entre-temps. Mieux vaut tard que jamais, cependant.

Clairement, il n'y a pas de bonne réponse à cette question, mais je vais voter toutes les réponses jusqu'à présent (en supposant que le site me le permette).


Apprenez à connaître les différents types et l'opérateur === , c'est essentiel pour certaines fonctions comme strpos() et vous commencerez à utiliser return false vous-même.








conventions