Découvrez la communauté PHP

Posté par  . Modéré par Nÿco.
Étiquettes : aucune
0
26
juil.
2003
PHP
Zend avait lancé au début du mois un grand sondage dans la communauté. Il s'agissait de mieux connaître la communauté. Comme promis, les résultats ont été partagés par Zend avec le groupe PHP. Voici donc le portrait type du développeur PHP :

Un développeur PHP habite en Europe, il développe en PHP et en général depuis deux à cinq ans. Il maîtrise aussi HTML et Javascript. Il développe des sites web, pour sa société, avec PHP parce que ce langage est facile à utiliser et flexible. Son système d'exploitation est Windows pour développer, et Linux pour le serveur web, qu'il gère lui même. La base de données habituelle est MySQL. Les projets PHP sont plutôt de petite taille (< 5000 lignes de code) et il attend avec impatience PHP 5.

Aller plus loin

  • # Re: Découvrez la communauté PHP

    Posté par  . Évalué à 4.

    ------------------8<-----------------
    Les projets PHP sont plutôt de petite tailles (< 5000 lignes de code)
    ------------------8<-----------------

    A titre d'exemple, le projet phpBB fait un peu plus de 35.000 lignes de code

    for file in *; do cd /tmp/phpBB2/$file; mv *.php /tmp/phpBB2; done
    cat *.php | wc -l
    36617

    :)
    • [^] # Re: Découvrez la communauté PHP

      Posté par  . Évalué à 4.

      om@bigapple:~/cvs/phpMyAdmin> cat *.php3 libraries/*.php3 libraries/*/*.php3 libraries/*/*/*.php3 | wc -l
      39269

      (et en comptant les fichiers de traduction: 101683)

      Mais bon, vu ca compte tous les commentaires, etc: ca n'a pas trop de sens il faut dire...

      PS: j'ai pas trop pigé ton systeme de comptage de lignes: pourquoi faire simple... :)
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 1.

        Disons que ça m'évite d'oublier des répertoires :)
        • [^] # Plus mieux

          Posté par  (site web personnel) . Évalué à 10.

          Plus courte, plus générique, plus puissante, voici la vraie commande qui fait du bien :

          $ find <dir> -type f -name "*.php*" -print0 | xargs -0 cat | wc -l

          <dir> étant le répertoire racine en dessous duquel vos fichiers PHP sont stockés (prenez "/" si vous êtes un peu bourrins). Tiens, j'ai 30886 lignes de PHP sur cette machine ? Alors là, l'admin qui sommeille en moi s'inquiète, car il ne devrait y en avoir aucune. Ah ! Ah ah ah, il s'agit des fichiers PHP stockés dans les caches des navigateurs web ! :-D
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 4.

        Essaies avec sloccount, c'est le truc qui a servi a estimer à une d'un gigabuck le coût de développement nécessaire pour refaire gnu/linux :

        http://www.dwheeler.com/sloccount/(...)
      • [^] # Re: Découvrez la communauté PHP

        Posté par  (site web personnel) . Évalué à 5.

        Comme si tout le monde travallait sur phpMyAdmin ou phpBB... On parle du développeur moyen, pas de l'élite.
        Z'avez rien pigé ;-)
    • [^] # Re: Découvrez la communauté PHP

      Posté par  (site web personnel, Mastodon) . Évalué à 9.

      Pour information :

      ~/templeet/templeet/src$ find . -type f -name "*.php*" -print0 | xargs -0 cat | wc -l
      9579

      $ wc -l templeet.php templeet/*.php
      (...)
      1966 total

      => 1.966 lignes de PHP dans le core (ce qui est chargé de base).

      penso@redmond:~/templeet/templeet/src/htdocs$ find templeet/modules/ -type f -name "*.php*" -print0 | xargs -0 cat | wc -l
      7597

      Ca c'est le nombre de ligne de PHP qui ne sont chargées que dans le cas ou une fonction qui s'y trouve est appelée dans un template, pour minimiser le nombre de ligne PHP qui sont évaluées. Les templates LinuxFr/Templeet font un peu moins que 10.000 lignes.

      En rapport, daCode fait 29.709 lignes.
  • # Re: Découvrez la communauté PHP

    Posté par  . Évalué à 10.

    J'adore les gens qui calcule en ligne de codes. Ca me rappelle un entretien d'embauche ou on me demandait combien de ligne de code j'avais pondu en Java.

    Le bon programmeur en fait le moins possible, mais ca personne ne veut l'entendre. Avec un generateur ( genre Visual C++ ), t'a des milliers de ligne qui servent a rien. Et j'imagine le codeur prolog qui annonce ses 1000 lignes de codes en 1 an, il trouvera jamais de job compare au 100 000 du prog visual c++.

    Le mieux, c'est qqun qui refactorise, il peut se retrouver avec un nombre negatif .
    • [^] # Re: Découvrez la communauté PHP

      Posté par  (site web personnel) . Évalué à 9.

      Ben, c'est aussi débile que de payer un artisant à l'heure tu sais. Les gens aiment bien mesurer et quantifier les choses pour pouvoir comparer et ainsi dire avec des arguments aux alures objectifs « ça c'est mieux » ou « ça ça a plus de valeur ».

      Si tu as une idée pour de mesurer la quantité (je parle même pas de qualité) d'un code mieux qu'en nombre de ligne ou en ko, n'hésite pas à la proposer.

      Personellement je pense qu'il faudrait compter en nombre de GOTO.
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 7.

        sur mon source 2.4.21 Debian en dès-patchant ipsec (fout la zone pour le patch USAGI) et en patchant avec USAGI + patch-o-matic j'ai

        [nebu@zion] /usr/src/linux
        -> grep -r "goto " * | wc -l
        17631

        ;-)
        • [^] # Re: Découvrez la communauté PHP

          Posté par  . Évalué à 1.

          quand je pense que les profs nous conseil tj d'en utiliser le - possible :D
          • [^] # Re: Découvrez la communauté PHP

            Posté par  . Évalué à 3.

            Oui, et c'est pareil pour les variables globales:

            Génération 1: « 'vaut mieux ne pas utiliser les variables globales si vous n'en avez pas besoin. Cela ne sert à rien. ».
            Génération 2: « Il ne faut pas utiliser les variables globales. CAI MAL (tm) ».
            Génération 3: « Vous avez utilisé des variables globales ? Vous êtes recalé. ».

            On voit régulièrement apparaître ce genre de légendes urbaines. Tout le monde s'accorde à dire qu'il ne faut pas utiliser telle ou telle chose, mais plus personne ne sait pourquoi.

            Mais c'est pas grave, c'est tellement plus beau, un programme débarrassé de toutes ces moches entêtes en début de listing ! Hein ? stack overflow dites-vous ? Connais pas ...
            • [^] # Re: Découvrez la communauté PHP

              Posté par  (site web personnel, Mastodon) . Évalué à 10.

              En ce qui concerne le sujet du fil de discussion, j'évite les instructions goto, break, continue et switch, parceque je trouve que ça casse la lecture du code (je n'arrive pas à penser en hypertexte ;) ).

              Le problème des variables globales est multiple. Déja, on ne m'a jamais dit de ne pas les utiliser, mais de les éviter.

              Premièrement, lorsque tu code dans un environnement multifils, il faut mettre en place des systèmes d'exclusions (sémaphores, sections critiques, etc …) pour être sûr d'être le seul à écrire dessus, ou être sûr de la validité de son contenu.

              Secondement, si on abuse des variables globales, on ne peux plus correctement programmer son bout de code : on est contraint de penser aux interactions avec le reste du projet. Ce n'est pas génial quand on a un esprit limité comme le mien.

              Ce n'est pas de la légende urbaine, ce sont juste des petites règles de programmation destinées à simplifier la maintenance d'un code et le travail en groupe. Mais si toutes les personnes travaillant sur le même projet on le même esprit tordu, pourquoi pas ;)

              Juste un point sur les goto dans le source de Linux. C'est vrai que ça m'avait choqué, mais je me dis que ça pourrait être pire ;) Ce qui m'embête le plus, c'est l'usage du goto quand il est absoluement inutile …

              Et pour finir, le stack overflow, c'est comme le segmentation fault : ça ne doit pas arriver ! Mais c'est vrai que de mettre en place des procédures de contrôle de la pile mémoire n'est pas évident, et agit négativement sur les performances de l'application. Mais c'est comme toujours le choix impossible : fiabilité ou performances ?
              • [^] # Re: Découvrez la communauté PHP

                Posté par  . Évalué à 3.

                Je n'ai pas dit le contraire, et je ne trouve pas que tu ait un esprit limité non plus :-)

                En ce qui concerne les globales, les raisons pour lesquelles on demande aux programmeurs de les éviter (Génération 1 dans mon précédent post) sont bien réelles, je n'ai jamais mis cela en doute.

                Ce que je reproche à certains programmeurs débutants et, ce qui est plus grave, quelques formateurs, c'est de ne plus connaître ses raisons. Il y a un certain nombre de cas ou l'utilisation d'une globale peut être la meilleure solution (spécialement pour la communication entre threads pour reprendre ton exemple), mais tu risques quand même d'y perdre des points pour le seul fait d'avoir utilisé cette technique.
                • [^] # Re: Découvrez la communauté PHP

                  Posté par  (site web personnel, Mastodon) . Évalué à 1.

                  Je suis absolument d'accord. D'ailleurs, j'utilise des variables globales (en PHP, on est un peu obligé même si j'essaie d'avoir un objet racine). Mais la bien sûr, il faut adapter ces méthodes de programmation au langages utilisés. je ne suis pas un intégriste tout de même :)
              • [^] # Re: Découvrez la communauté PHP

                Posté par  . Évalué à 1.

                Le goto dans linux est utilise principalement lors de l'initialisation de modules.
                Du style :

                [. . .]
                err=register_this(p1, "tata");
                if(err) goto fail_this;
                err=register_that(p2, "tata");
                if(err) goto fail_that;
                return 0;
                fail_that:unregister_that(p2, "tata");
                fail_this:unregister_this(p1, "tata");
                [. . .]

                Quand aux variables globales, SAIMAL(tm), because elles s'aliasent entre elles.

                Quand aux questions cons de DRH, moi j'ai eu 1000 fois pire. Du style : vous connaissez Oracle, OUI ou NON, vous connaissez Java, OUI ou NON .... Pas "OUI, mais je ne saurais pas dimensionner une db sous Oracle avec cluster sous AIX ... ", mais "OUI" ou "NON". Moi je reponds systematiquement NON. Apres y te prennent pour un associable.
        • [^] # Re: Découvrez la communauté PHP

          Posté par  (site web personnel) . Évalué à 2.

          Et sur un 2.6.0-test1 :

          grep -r "goto " /usr/src/linux-2.6.0-test1 | wc -l
          23665
        • [^] # Re: Découvrez la communauté PHP

          Posté par  (site web personnel) . Évalué à 9.

          Arrêtons l'intégrisme ! Je m'insurge aussi bien contre ceux qui abusent de goto que contre ceux qui le bannissent. Tout dépend de sa raison d'être.
          Lorsqu'un goto permet d'éviter 10 indentations, il rend le code beaucoup plus lisible.
          Le goto est un exception au même titre qu'un break. Il doit toujours aller vers un point singulier du programme tel que réinitialisation, sortie sur erreur...
          Certains programmes n'ont absolument pas besoin de goto, d'autres sont bien plus compréhensibles avec quelques uns. Tout dépend du contexte.
          • [^] # Re: Découvrez la communauté PHP

            Posté par  (site web personnel) . Évalué à 8.

            Alors la je m'insurge Pierre :)

            Je n'ai encore jamais vu un goto utile et je ne vois pas en quoi cela va changer le nombre d'indentation... Enfin, si peut etre mais je comprend pas alors l'interet de tester des conditions et d'un seul coup de dire qu'on testera la suite plus loin dans le seul but de ne pas avoir 10 niveaux d'intentation... Si j'ai pas compris, il faut me le dire :)

            Sinon, pour l'utilisation du goto, un petit exemple avec linux...

            void add_timer(struct timer_list *timer)
            {
            unsigned long flags;

            spin_lock_irqsave(&timerlist_lock, flags);
            if (timer_pending(timer))
            goto bug;
            internal_add_timer(timer);
            spin_unlock_irqrestore(&timerlist_lock, flags);
            return;
            bug:
            spin_unlock_irqrestore(&timerlist_lock, flags);
            printk("bug: kernel timer added twice at %p.\n",
            __builtin_return_address(0));
            }

            alors, la, moi je vois pas pourquoi le code de bug: se trouve pas apres le if avec un else si y'a pas eu bug... et sans le return;
            Mais je dis peut etre une grosse connerie et si quelqu'un veut m'expliquer, qu'il le fasse :) J'aurais peut etre moins d'appriories sur le goto apres :)
            • [^] # Re: Découvrez la communauté PHP

              Posté par  (site web personnel) . Évalué à 3.

              Je ne suis pas un expert du code C UHP (ultra-haute performance), mais il est possible qu'en codant cette fonction ainsi, l'auteur ait économisé quelques cycles de CPU bien appréciables dans une fonction d'aussi bas niveau.
              • [^] # Re: Découvrez la communauté PHP

                Posté par  . Évalué à 3.

                Ben oui, mais en théorie c'est le travail du compilo... C'est le seul qu'à le droit de mettre des goto ;)
              • [^] # Re: Découvrez la communauté PHP

                Posté par  (site web personnel) . Évalué à 1.

                C'est bizarre mais on m'a tjs dit l'inverse, qu'il sera tjs plus difficile pour le compilateur d'optimiser le code avec un goto plutot qu'un simple if.
              • [^] # Re: Découvrez la communauté PHP

                Posté par  . Évalué à 9.

                Cette version(j'ai enlevé les structures pour pouvoir compiler):
                
                void add_timer()
                {
                	unsigned long flags;
                
                	spin_lock_irqsave(flags);
                	if (!timer_pending()) {
                		internal_add_timer();
                		spin_unlock_irqrestore(flags);
                	} else {
                		spin_unlock_irqrestore(flags);
                		printk("bug: kernel timer added twice at %p.\n",
                				__builtin_return_address(0));
                	}
                }
                
                produit la même sortie en assembleur que la version avec goto. Gcc est utilisé comme ça:
                    gcc -march=athlon-tbird -S -O2 t.c
                Par contre comme ça:
                    gcc -S -O2 t.c
                Il y a une ligne bizarre de plus qui semble inutile dans la version non goto:
                
                	addl	$16, %esp
                	movl	%ebp, %esp
                
                Voila, bien sûr ça peut être différent sur une autre architecture.
                La balise blockquote marche pas, ou bien?
                
                • [^] # Re: Découvrez la communauté PHP

                  Posté par  . Évalué à 1.

                  Ces deux lignes permettent de creer une frame stack pour la reservation de variables locales.
                  La premiere ligne fait de la place avec le pointeur de pile esp pour les variables locales.
                  La deuxieme ligne sauvegarde dans ebp le pointeur de stack pour pouvoir nettoyer plus tard la pile.

                  Par contre c'est bizarre qu'il y ait une difference comme ca entre les deux versions.
                  Sinon tu peux ajouter -fomit-frame-pointer pour virer ces deux lignes.
                  • [^] # Re: Découvrez la communauté PHP

                    Posté par  . Évalué à 1.

                    >Ces deux lignes permettent de creer une frame stack pour la reservation de variables locales.
                    C'est tout le contraire, la première libère l'espace réservé pour les variables locales et la seconde restore esp(movl src,dest).
                    Aprés avoir ajouter $16 à esp, le compilateur réinitialise esp, c'est fort.(compilé avec -O2 quand même)
            • [^] # Re: Découvrez la communauté PHP

              Posté par  (site web personnel) . Évalué à 8.

              Je n'ai encore jamais vu un goto utile et je ne vois pas en quoi cela va changer le nombre d'indentation...

              Souvent, la meilleure façon d'éviter des indentations trop profondes est de créer des fonctions et le code devient beaucoup plus clair. Mais il y a des cas où ce n'est pas vrai.

              Sur 15000 lignes de mon cru en code en C, un programme comporte 2 goto. Un autre programme très bien écrit et commenté de 673 lignes en comporte 25 mais ils ne correspondent qu'à deux adresses :
              - goto Question; /* Point central du programme */
              - goto Fin;
              Quand je relis ce programme fait en 1990 et modifié en 1995, je n'ai aucune difficulté à le relire, bien au contraire. Si je devais le refaire maintenant, je referais très certainement le même tellement le résultat est lisible et simple à comprendre.

              Tout dépend de problème à traiter. C'est pareil pour les variables globales. Certaines sont vraiment pleinement justifiées et il vaut mieux les utiliser plutôt que de les trainer dans les valeurs transmises à chaque fonction. Ici encore, il faut éviter tout excès.

              J'aime beaucoup le système de gestion des variables globales des langages Pascal et Ada. Il est bien supérieur à ce que l'on fait en C ou en Fortran.

              Ces goto n'ont rien à voir avec le programme en Fortran que j'avais fait en 1970 à l'époque des cartes perforées : il y a tellement de goto (il n'y avait rien d'autre à l'époque) que j'ai les plus grandes difficultés à le relire.
            • [^] # Re: Découvrez la communauté PHP

              Posté par  . Évalué à 3.

              Ca permet de separer le traitement des erreurs du code normal.
              Dans cet exemple, c'est vrai qu'il n'y a qu'un seul truc a tester, donc ca ne fait pas grand effet.

              Linux Torvald avait un post sur les mailing kernel expliquant pourquoi il preferait les goto dans certaines conditions (nottament la gestion des erreurs). J'arrive plus a retrouver l'URL mais il y a des trucs repris ici : http://linuxfr.org/2003/03/12/11606.html(...)

              Personnellement je n'utilise pas le goto pour le traitement d'erreur car j'utilise les exceptions (du moins en C++ et Java). Mais j'avoue qu'en C, le seul moyen que je connaisse qui permette de se rapprocher du traitement d'erreur type "exception" est l'utilisation de goto.

              Par exemple :

              void f()
              {
              A a = doSomething1();
              if (erreur)
              goto destroyA;

              B b = doSomething2();
              if (erreur)
              goto destroyB;

              ...

              C c = doSomething3();
              if (erreur)
              goto destroyC;

              return;

              destroyC :
              destroyC(c);
              destroyB :
              destroyB(b);
              detroyA :
              destroyA(a);

              return;
              }
              • [^] # Re: Découvrez la communauté PHP

                Posté par  . Évalué à 1.

                Tu peux aussi avoir un système d'exceptions en C en fusant mumuse avec
                le précompilateur.
                cf http://www.ethereal.com/cgi-bin/viewcvs.cgi/ethereal/epan/exception(...)
                • [^] # Re: Découvrez la communauté PHP

                  Posté par  . Évalué à 1.

                  C'est clair que les exceptions, même en C++, sont l'exemple type d'un procédé implicitement mis en oeuvre avec des GOTO.

                  Dans le même genre: En 1985, j'écrivais en BASIC:

                  10 I=1
                  20 PRINT I
                  30 I=I+1
                  40 IF I<20 THEN GOTO 20

                  Plus tard, j'ai découvert que les vrais l33t utilisaient FOR TO NEXT

                  10 FOR I=1 TO 20
                  20 PRINT I
                  30 NEXT

                  C'est vachement plus beau, hein ? On a officiellement défini la boucle au sein du programme. Et qu'est-ce que cela nous rapporte ?

                  - La syntaxe est moins intuitive pour un débutant que celle du IF. Passons.
                  - La boucle est implémentée au final exactement de la même façon qu'avec un GOTO (utilisation d'un JMP conditionnel en assembleur).
                  - On est obligé d'utiliser de l'espace dans la pile pour retrouver la boucle. On risque le débordement dans le cas où la fonction est récursive et a été mal écrite.
                  - On est obligé d'utiliser un EXIT pour sortir explicitement de cette boucle. Un GOTO n'est pas envisageable car du coup, l'espace occupé dans la pile n'est pas libéré, le langage ne sait pas que l'on a quitté la boucle, et on risque de s'y retrouver contre son gré au prochain NEXT.

                  Les supposés progrès n'en sont donc pas toujours. C'est à mon avis toute la différence qui existe entre ceux qui abordent la conception logicielle en programmeurs et ceux qui le font en mathématiciens.
                • [^] # Re: Découvrez la communauté PHP

                  Posté par  . Évalué à 1.

                  Vi, enfin c'est des setjmp/longjmp quand meme ...
              • [^] # Re: Découvrez la communauté PHP

                Posté par  . Évalué à 1.

                Sorry mais...Quelle horreur!

                A la place du goto tu peux coder une fonction de gestion d'erreur qui fait un exit, ça fera déjà un peu plus structuré.

                C'est peut-être une question d'habitude mais j'ai jamais rencontré un cas qui me donne l'envie d'utiliser un goto.
                • [^] # Re: Découvrez la communauté PHP

                  Posté par  . Évalué à 1.

                  Oui, sauf qu'il ne s'agit pas de faire un exit.
                  Il s'agit juste de factoriser du code nettoyant des variables avant de retourner.
                  Comme je le dis plus haut, je suis pas fana des goto, mais des fois ca permet d'etre plus lisible quand meme.
              • [^] # Re: Découvrez la communauté PHP

                Posté par  (site web personnel) . Évalué à 1.

                Lorsque je codais encore en C, j'ai écris quelques macros pour me faciliter la gestion d'erreur, et elles s'appuyaient sur la bibliothèque standard 'setjmp'. Quand je suis passé au C++, j'ai recodé ces macros à l'aide des exceptions, tout en leur conservant les mêmes fonctionnalités. Les deux versions sont d'ailleurs interchangeables. Bref, la 'setjmp' premettait de disposer en C d'un mécanisme trés similaire aux exceptions C++.
                Pour ceux qui voudraient approfondir, qu'il jette un oeuil à la bibliothèque 'err' du projet Epeios (http://epeios.org/(...)).

                Pour nous émanciper des géants du numérique : Zelbinium !

                • [^] # Re: Découvrez la communauté PHP

                  Posté par  . Évalué à 1.

                  Vi j'ai fais pareil a un moment donne.
                  Sauf que les sauts non locaux (traduction de non-local goto), ca fait mal aux caches. Et la sémantique supportée n'est pas tout a fait la même que des vrais exceptions.
                  Tu peux effectivement retourner a un point de ton chemin d'execution, mais c'est inconditionnel. Pas de reprise si match d'un type, et pas de destruction des variables locales des fonctions traversees. (ou appel d'une méthode finalize sur celles ci)
            • [^] # Re: Découvrez la communauté PHP

              Posté par  . Évalué à 1.

              Bah, regarde + haut. Tu peux pas faire + simple que d'utiliser un goto parfois.
      • [^] # Re: Découvrez la communauté PHP

        Posté par  (site web personnel) . Évalué à 1.

        Personellement je pense qu'il faudrait compter en nombre de GOTO.

        Bin merde, moi qui n'en utilise quasiment jamais !
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 7.

        Pour ma part, je prefere compter en journee/mois/annees hommes les projets. Certes ca retranscrit pas le talent particulier d'un homme mais moyenner ca peut laisser une bonne idee.

        Pour reprendre l'exemple PHP, des projets < a 2 ou 3 mois.homme. Et ca deviens comparable a prolog ou java ou autre.
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 3.

        mmmh, pour la qualité, en général, on calcule l'indice Borken

        grep -E 'damn|FIXME|hosed|evil|sick|hack|hopeless|borked|are SOL|broken|slooo*w|suck|so wrong|:-\(' | wc -l

        Plus c'est haut, plus le soft est bon.
    • [^] # Re: Découvrez la communauté PHP

      Posté par  (site web personnel) . Évalué à 4.

      J'adore les gens qui calculent en ligne de codes.

      Ne dit-on pas "peu importe la quantité, tant qu'on a la qualité ?"

      A propos de PHP, je vois pas l'intérêt de compter en lignes de codes, je trouve justement que l'un des intérêts de PHP est de pouvoir faire des choses intéressantes sans forcément avoir à coder des milliers de lignes.
      Bon, me suis déjà tapé un gros projet en PHP (>5000 puisque c'est la limite apparemment), mais si je peux faire moins pour un autre projet, je ne vais certainement pas me gêner...
    • [^] # Re: Découvrez la communauté PHP

      Posté par  . Évalué à -2.

      Et j'imagine le codeur prolog qui annonce ses 1000 lignes de codes en 1 an, il trouvera jamais de job compare au 100 000 du prog visual c++

      Prolog, ça ne sert à rien. Pourquoi un codeur prolog trouverait-il un job ?
    • [^] # Re: Découvrez la communauté PHP

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      Le bon programmeur en fait le moins possible, mais ca personne ne veut l'entendre.

      Ah, bah on est bien d'accord... C'est facile de faire X lignes de code, le plus dur c'est d'en faire le moins possible et que ça booste le plus possible.
  • # Re: Découvrez la communauté PHP

    Posté par  (site web personnel) . Évalué à 6.

    Il maitrise aussi HTML et Javascript
    Je ris jaune... surtout quand je vois la merde que c'est php pour generer du (x)html valide... et que les developpeurs font trainer (certains bugs la dessus, mineurs ou non, triviaux ou non, durent depuis 2/3 ans, sans bcp de nouvelles a part des vieux hacks pourris), alors que php5 sera encore avec short_tag par defaut (vous savez, le truc qui rend possible l'inclusion de la declaration xml... via un print/echo...) ...
    • [^] # Re: Découvrez la communauté PHP

      Posté par  . Évalué à 3.

      c'est php pour generer du (x)html valide...

      Sauf erreur de ma part, c'est le "codeur" qui génère le code HTML ... pas PHP ... ou alors y'a des fonctions que je ne connais pas en tête !
      • [^] # Méthode de programmation PHP

        Posté par  (site web personnel, Mastodon) . Évalué à 4.

        Et ça dépends comment tu utilises PHP : en insertion dans le document, ou en amont du document. Pour ma part, je fait les deux : un document principal ou on ne fait qu'instancier des objets et leur envoyer des messages, et des fichiers à inclure où on a le plus gros de la programmation.

        Mais je peux me tromper dans ma méthode … à votre avis ?
        • [^] # Re: Méthode de programmation PHP

          Posté par  . Évalué à 4.

          Moi, personnellement, je sépare toujours le code PHP du code HTML en utilisant un système de gestion de template (même rudimentaire et/ou autonome)
          Ca évite - à moi ou la personne qui va utiliser mon code - de toucher ce dernier s'il faut modifier une présentation.
        • [^] # Re: Méthode de programmation PHP

          Posté par  (site web personnel) . Évalué à 4.

          J'ai toujours été écoeuré par l'idée d'utiliser PHP en tant que language orienté objet. Je ne sais pas trop, ça veut pas rentrer dans ma tête que ça a des avantages pour un programme (voire script) qui est terminé après chaque page générée...
          • [^] # Re: Méthode de programmation PHP

            Posté par  (site web personnel) . Évalué à 5.

            Regarde travailler une équipe d'une dizaine de développeurs PHP sur un intranet d'entreprise ou ils développent tout un tas d'applis en partageant des classes pour un peu tout (l'accès au SGBDR, à la gestion des habilitations des utilisateurs, etc, etc...) et tu comprendra l'interêt de l'orientation objet dans PHP.

            Curieusement, ils attendent tous avec impatience PHP 5 !
      • [^] # Re: Découvrez la communauté PHP

        Posté par  (site web personnel) . Évalué à 3.

        nl2br, trans_id, etc... la liste est longue, et ca genere du beau code completement invalide. le probleme est connu des developpeurs php, il ya de multiples bugs sur le sujet... mais ils ne font rien ou alors proposent des workaround pourris...
        • [^] # Re: Découvrez la communauté PHP

          Posté par  . Évalué à 1.

          nl2br est valide a partir de la version 4.0.5 de PHP quand à trans_id je ne connais pas et le manuel de php.net non plus.

          Dam
          • [^] # Re: Découvrez la communauté PHP

            Posté par  . Évalué à 4.

            il parle surement de session.use_trans_id qui reécrit les liens et ajoute des & pas valide.
            il suffit de mettre un petit arg_separator.output = & qque part (non dmc ça marche pas) pour rectifier le tir.
            • [^] # Re: Découvrez la communauté PHP

              Posté par  (site web personnel) . Évalué à 4.

              Rate pour les 2.
              nl2br fait des <br /> xhtml, invalides en html.
              trans_id genere des formulaires invalides en xhtml strict en mettant le <input type="hidden"> pour le passage de l'identifiant dans le form au lieu de le mettre dans l'element block level le plus proche (generalement un fieldset ou un p)

              Et ce ne sont que 2 pauvres exemples... yen a pas mal d'autres...
              J'aime beacoup php, mais ya qd meme du chemin a faire pour que il genere nativement du bon code html. du coup si on veut faire bien, on se tape tout un tas de trucs a recoder... (je vous parle meme pas de show_source() :)
  • # Re: Découvrez la communauté PHP

    Posté par  (site web personnel) . Évalué à 2.

    >Son système d'exploitation est Windows pour développer
    Je le savais que c'étaient des traitres...
    • [^] # Re: Découvrez la communauté PHP

      Posté par  (site web personnel) . Évalué à 2.

      C'est toujours moins traitre que de coder sous windows et d'avoir son serveur sous windows (IIS).
      Surtout que dans ce cas là, ils utilisent de l'asp !!
      :-p

      Un jour libre ?

    • [^] # Re: Découvrez la communauté PHP

      Posté par  . Évalué à 3.

      C'est pas que sous Windows ya Dreamweaver Ultradev pour créer des pages web crados mais dignes de Windows.
    • [^] # Re: Découvrez la communauté PHP

      Posté par  . Évalué à 4.

      je m'insurge! je fais du php depuis un moment et entièrement sous Linux, je ne vois absolument pas l'intérêt de travailler sous win alors qu'on a tellement d'outils de qualité sous Linux, en plus même pour les débutants c'est plus facile car apache/php/mysql est installé par défaut avec la plupart des distribs grand public.
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 7.

        Quand on bosse on ne choisit pas toujours son environnement.
        • [^] # Re: Découvrez la communauté PHP

          Posté par  . Évalué à -2.

          Si on est bon et indispensable, on peut choisir. Il reste les autres...
          • [^] # Re: Découvrez la communauté PHP

            Posté par  . Évalué à 4.

            Haheum t'as déjà bossé dans une grande boite avec un service de maintenance informatique ? Les bécanes tu n'y modifie rien c'est pas ton boulot, tu te sert de se que l'on te donne.
            C'est sûr que quand le service info fait moins de 30 personnes tu fait un peu ce que tu veux.
            • [^] # Re: Découvrez la communauté PHP

              Posté par  (site web personnel) . Évalué à 2.

              Chez nous, avec un service info d'une cinquantaine de personnes dont une douzaine de PHPistes à plein temps. Au début tout le monde avait un PC Windows et une vieille station SGI (vu que c'est les postes utilisés par les clients).
              Normalement, les 2 sont fait pour tester mais ils préféraient utiliser la station SGI pour développer car c'est quand même nettement plus pratique qu'un PC Windows avec un serveur qui lui est sous Unix (Solaris).

              On a juste un seul irréductible Windows mais les autres sont en train de passer au fur et à mesure sous Linux car c'est encore plus pratique que la SGI et surtout nettement plus rapide !
              Par contre, ça a été une grosse guerre avec l'exploitation qui ne voulait pas entendre parler de Linux sur les postes de travail (sans raison logique).
        • [^] # Re: Découvrez la communauté PHP

          Posté par  . Évalué à 2.

          On utilise Knoppix alors ;-)
          • [^] # Re: Découvrez la communauté PHP

            Posté par  (site web personnel) . Évalué à 1.

            Oui, ca peut -être une solution.
            - Je suis dans le cas ou l'on m'impose Windows -
            J'envisage plutot de ramener une machine perso avec de quoi switcher ecran/clavier/souris.

            Le problème de la knoppix est que le reseau est Novell, alors comment je fais sous la knoppix pour avoir accès aux répertoires et imprimantes partagées ?
            • [^] # Re: Découvrez la communauté PHP

              Posté par  . Évalué à 1.

              Et l'autre probleme est que si le seul peripherique dans la sequence de boot est le disque dur, que tu ne peux rien modifier dans le bios tu l'as dans le /dev/dtc. Et c'est généralement le cas si les becanes sont bien administrées.
      • [^] # Re: Découvrez la communauté PHP

        Posté par  . Évalué à 2.

        un outil de qualité: quanta plus.
        aucun IDE sous windows (ni sous linux d'ailleurs) ne fais le poid (surtout pas phpedit)
      • [^] # Re: Découvrez la communauté PHP

        Posté par  (site web personnel) . Évalué à 7.

        Ça me rapelle que j'avais développé un truc sur mon portable sous Linux puis je l'avais mis à tourner sur le serveur sous win2k avec IIS et mySQL et j'avais le nom de mes tableaux avec Majuscules au début. Forcément quand je suis passé sous windows tout était minuscule.
        Le soir, j'ai fait un dump de mySQL sous windows et je l'ai remis sur mon portable. Les tableaux avaient des noms avec une minuscule au début. Linux faisant la différence entre majuscule et minuscule, plus rien ne marchait.
        J'ai dû chercher au moins une heure avec de trouver la solution.
        Ça m'a tellement dégoûté que je suis aller sortir une vielle machine, j'y ai mis Linux pour faire tourner LAMP et ne plus devoir me battre avec Windows.
        • [^] # Re: Découvrez la communauté PHP

          Posté par  . Évalué à -1.

          Minute culture

          Linux faisant la différence entre majuscule et minuscule, plus rien ne marchait.

          On appelle ça respecter la casse
  • # Groupe de travail : 2-5 personnes

    Posté par  (site web personnel) . Évalué à 2.

    Moi ça me blase un peu cette stat : groupe de travail de 2-5 personnes. Si c'est vraiment représentatif ça veut dire qu'il n'y a en effet que des petits projets (ce qui correspondrait aux 5000 lignes vues plus haut). Pas de quoi convaincre un décideur que PHP c'est sérieux :-(

    Pourtant avec tous les gros projets qu'on connait et les grosses boites qui l'utilisent...
    • [^] # Re: Groupe de travail : 2-5 personnes

      Posté par  . Évalué à 6.

      Si tu regardes les stats, tu vois que ce sont surtout des gens qui bossent en web agency. Et le nombre de devs dans les agences sont souvent limités.

      Ce sondage ne prend pas en compte les gens qui bossent sur des gros projets communautaires.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.