coloration syntaxique pour php

Eléphanteau du PHP | 29 Messages

05 avr. 2008, 01:36

Bonsoir,
Voulant me remettre au php je recherchais un editeur, j'ai choisi notepad++ (avant j'utilisé le notepad windows) qui semble tout a fait convenir a l'utilisation prévue, si vous avez des remarques surtouts n'hesitez pas je les ecouterais toutes :)

Autrement question qui est peut etre trés stupide.. J'ai vu que l'on pouvait modifier la coloration syntaxique, je trouve celle d'origine pas assez clair (de mon point de vue) ma question est donc, existe t'il une "norme" concernant la coloration syntaxique pour php? et si ce n'est pas le cas quelle configuration utilisé vous?

Merci d'avance:)

Mammouth du PHP | 19672 Messages

05 avr. 2008, 09:12

Salut,
il n'existe à ma connaissance aucune norme pour la coloration syntaxique. Il appartient à chacun d'être confortable avec la lecture du code et donc de configurer selon ce qui lui paraît le plus clair.

Pour Notepad++, voici ce que j'utilise personnellement :

Code : Tout sélectionner

<LexerType name="html" desc="HTML" ext=""> <WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="COMMENT" styleID="9" fgColor="0000FF" bgColor="FFFFFF" fontName="Comic Sans MS" fontStyle="0" fontSize="8" /> <WordsStyle name="NUMBER" styleID="5" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="DOUBLESTRING" styleID="6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="SINGLESTRING" styleID="7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="TAG" styleID="1" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="TAGUNKNOWN" styleID="2" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="ATTRIBUTE" styleID="3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="ATTRIBUTEUNKNOWN" styleID="4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="SGMLDEFAULT" styleID="21" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="CDATA" styleID="17" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="VALUE" styleID="19" fgColor="FF8000" bgColor="FEFDE0" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="ENTITY" styleID="10" fgColor="000000" bgColor="FEFDE0" fontName="" fontStyle="2" fontSize="" /> </LexerType> <LexerType name="php" desc="php" ext=""> <WordsStyle name="QUESTION MARK" styleID="18" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="DEFAULT" styleID="118" fgColor="000000" bgColor="FEFCF5" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="STRING" styleID="119" fgColor="000000" bgColor="FEFCF5" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="STRING VARIABLE" styleID="126" fgColor="000000" bgColor="FEFCF5" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="SIMPLESTRING" styleID="120" fgColor="000000" bgColor="FEFCF5" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="WORD" styleID="121" fgColor="008000" bgColor="FEFCF5" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" /> <WordsStyle name="NUMBER" styleID="122" fgColor="FF0000" bgColor="FEFCF5" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="VARIABLE" styleID="123" fgColor="000080" bgColor="FEFCF5" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="COMMENT" styleID="124" fgColor="0000FF" bgColor="FEFCF5" fontName="Courier New" fontStyle="2" fontSize="9" /> <WordsStyle name="COMMENTLINE" styleID="125" fgColor="0000FF" bgColor="FEFCF5" fontName="Comic Sans MS" fontStyle="2" fontSize="9" /> <WordsStyle name="OPERATOR" styleID="127" fgColor="008000" bgColor="FEFCF5" fontName="" fontStyle="0" fontSize="" /> </LexerType> <LexerType name="javascript" desc="Javascript" ext=""> <WordsStyle name="DEFAULT" styleID="41" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="NUMBER" styleID="45" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="WORD" styleID="46" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="KEYWORD" styleID="47" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" /> <WordsStyle name="DOUBLESTRING" styleID="48" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="SINGLESTRING" styleID="49" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="SYMBOLS" styleID="50" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="STRINGEOL" styleID="51" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="REGEX" styleID="52" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="COMMENT" styleID="42" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="9" /> <WordsStyle name="COMMENTLINE" styleID="43" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="9" /> <WordsStyle name="COMMENTDOC" styleID="44" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="9" /> </LexerType> <LexerType name="css" desc="CSS" ext=""> <WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="TAG" styleID="1" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="CLASS" styleID="2" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="PSEUDOCLASS" styleID="3" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="UNKNOWN_PSEUDOCLASS" styleID="4" fgColor="FF8080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="OPERATOR" styleID="5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="IDENTIFIER" styleID="6" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" /> <WordsStyle name="UNKNOWN_IDENTIFIER" styleID="7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="VALUE" styleID="8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="COMMENT" styleID="9" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="9" /> <WordsStyle name="ID" styleID="10" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="IMPORTANT" styleID="11" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="3" fontSize="" /> <WordsStyle name="DIRECTIVE" styleID="12" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> </LexerType>
Tu trouveras ça dans le fichier de configuration qui devrait être quelque part dans C:\Documents and Settings\TonNom\Application Data\Notepad++ dans le fichier stylers.xml

Si tu veux essayer ça, fais une copie du fichier original en sauvegarde et remplace les valeurs pour ces quatre langage avec cet exemple, puis ouvre quelques fichiers avec cette nouvelle configuration.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 avr. 2008, 10:52

J'ai longtemps utilisé Notepad++, que j'appréciais beaucoup,
jusqu'à ce que je découvre certain travers qui m'a beaucoup gêné dans mon travail
et, de fait, je l'ai jeté définitivement, sans regret et avec fracas.

(c'était l'intro)

Ses atouts :
- léger
- coloration syntaxique claire et lisible
- nombreux formats fichiers supportés (PHP, HTM, SQL, XML, etc.)

Son impardonnable défaut :
- ne respecte pas l'encodage des fichiers :
tu ouvres un fichier UTF8, tu le modifies, tu l'enregistres.
Il vient d'être réencodé en "ANSI as UTF8"
et là, ton serveur te dit Beurk !

Ça m'a lassé.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 avr. 2008, 11:45

Bonjour,

Effectivement il n'existe pas de norme pour la coloration syntaxique, chaque outil utilise la sienne.
Ce qu'on pourait (peut être) considérer comme une norme est la coloration syntaxique que PHP fournit par défaut avec les fonctions highlight_file ou highlight_string, mais quoiqu'il en soit chacun fait comme ça lui semble le mieux pour développer.
http://fr.php.net/highlight_string
http://fr.php.net/highlight_file

En ce qui concerne un outils "style notepad" pour éditer du code PHP, je ne peut que te recommander très vivement SciTE qui est pour moi l'idéal de l'éditeur archi léger:
http://www.scintilla.org/SciTE.html
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 29 Messages

05 avr. 2008, 20:55

Merci de vos reponses :)

J'ai effectivement vu des bon retour sur scite, se serait possible d'avoir un petit comparatif rapide entre scite et notepad++?

albat, le pb que tu énonce doit effectivement étre assez agacant a la longue

ViPHP
ViPHP | 3607 Messages

05 avr. 2008, 21:11

Pour répondre rapidement au problème d'albat,
j'ai récemment trouvé une astuce pour conserver l'encodage utf-8 (sans BOM) de mes sources,
il suffit de rajouter coding: utf-8
En fait, le programme cherche, dans les deux premières lignes du ficher, après la chaîne de caractères coding: utf-8. Si cette chaîne est présente, il passera automatiquement en mode « UTF-8 Cookie »
Donc voili voilou ;)

ViPHP
ViPHP | 4674 Messages

06 avr. 2008, 00:18

Hey,

si tu cherches un éditeur graphique, en effet choisi SciTE. Il a cependant un défaut (qui m'a vite lassé) : quand on échappe un guillemet (\' ou \") il arrête la colorisation de la chaîne alors qu'il devrait la continué. Mais sinon, c'est le meilleur :). Tu seras épaté par ses configurations et sa vitesse.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 2937 Messages

06 avr. 2008, 12:42

si tu cherches un éditeur graphique, en effet choisi SciTE. Il a cependant un défaut (qui m'a vite lassé) : quand on échappe un guillemet (\' ou ") il arrête la colorisation de la chaîne alors qu'il devrait la continué.
Tiens ! le même défaut que ConTEXT. ;)

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

06 avr. 2008, 13:49

Il a cependant un défaut (qui m'a vite lassé) : quand on échappe un guillemet (\' ou ") il arrête la colorisation de la chaîne alors qu'il devrait la continué.
Ayant lu ça j'ai été surpris car je n'avais jamais remarqué.
J'ai donc testé (apt-get install scite, puis écriture d'un petit fichier avec la config par défaut) :
Image
Ça fonctionne bien, tu as du récupérer un fichier de config moisi ;)

ViPHP
ViPHP | 4674 Messages

06 avr. 2008, 14:13

Ce problème existait à l'époque où je l'utilisais, le bug a du être corrigé alors. Au temps pour moi.
Et c'était sur Windows, peut-être que ...

(et le fichier de config, je l'avais fais à la main ;-))
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 avr. 2008, 15:54

ça fait quelques années (peut être 3 ou 4) que j'utilise Scite (sous Windows) et je n'ai jamais rencontré ce bug, étrange...
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 1885 Messages

06 avr. 2008, 20:47

Son impardonnable défaut :
- ne respecte pas l'encodage des fichiers :
tu ouvres un fichier UTF8, tu le modifies, tu l'enregistres.
Il vient d'être réencodé en "ANSI as UTF8"
et là, ton serveur te dit Beurk !

Ça m'a lassé.
Depuis plusieurs années j'utilise Notepad++, rien à redire.

Ton problème est expliqué dans cet FAQ d'un autre éditeur de texte:
http://www.flos-freeware.ch/np2faq.html#q11

En gros, ton fichier ne contient pas de caractère UTF-8, ANSI est donc assumé comme l'encodage lors de l'ouverture.

Il faudrait enregister le fichier au format "UTF-8 with BOM". Cependant Apache/PHP n'aimera pas ce BOM, donc on est pas plus avancé. :)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 avr. 2008, 22:22

Il faudrait enregister le fichier au format "UTF-8 with BOM".
Cependant Apache/PHP n'aimera pas ce BOM, donc on est pas plus avancé. :)
Ouf ! Tu m'as fait peur... :langue:

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

06 avr. 2008, 23:24

Et l'ajout de "coding: UTF-8" dans les deux première lignes du fichier (en commentaire par exemple) ? C'est ce qui fonctionne pour SciTE et quelques autres éditeurs.

ViPHP
ViPHP | 4674 Messages

07 avr. 2008, 12:12

vim accepte également cette syntaxe (mais il faut le coder il me semble). On passe quelques paramètres de cette façon :

Code : Tout sélectionner

vim:expandtab,tabstop=4,shiftwidth=4,encoding=utf-8,...
et à l'ouverture, hop il applique ses paramètres.

Mais c'est pas très propre de redéfinir l'encodage de cette façon.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).