Développement d'un site complet

Nouveau WRInaute
Bonjour,

Je souhaite faire développer un site par un développeur freelance pas par une agence.
Le site sera une plateforme de cv en ligne, type resume.com ou doyoubuzz.
J'hésite à le faire faire en php "pur" from scratch" ou en utilisant un framework php (type symphony 2, zend 2...).

Avis aux experts, j'aimerais avoir vos avis/conseils quant aux choix de la solution à retenir : php pur ou utilisation d'un framework ?
Si l'option PHP pur est retenue ce serait en PHP orienté object (Php 5).
HTML 5, CSS3
Evidemment dans la mesure ou le code est propre, structuré (type MVC) et sécurisé. Bref une bonne programmation avec des commentaires dans le code.
L'éventuelle coût plus élevé d'un dev en php pur par rapport à un framework n'est pas un critère de choix des plus important.

Ma vrai question est de savoir ce qui sera le plus facilement maintenable à long terme, sécurisé et stable.
Egalement le plus facilement développable et améliorable si je change de développeur. La solution "passe partout" si cela est possible.
La solution d'utiliser un framework qui serait laisser par la suite à l'abandon, donc prévoir une refonte vers un autre framework à jour, me rebute un peu.

Merci de bien vouloir argumenter vos avis/conseils et pour votre participation à ce sujet !
 
WRInaute accro
Je viens de regarder cette vidéo qui correspond à tes interrogations:
<troll>Perso j'ai abandonné PHP pr mes projets parce que ça sux</troll>
 
WRInaute accro
devsite a dit:
Ma vrai question est de savoir ce qui sera le plus facilement maintenable à long terme, sécurisé et stable.
Egalement le plus facilement développable et améliorable si je change de développeur. La solution "passe partout" si cela est possible.
La solution d'utiliser un framework qui serait laisser par la suite à l'abandon, donc prévoir une refonte vers un autre framework à jour, me rebute un peu.
Je reprend qques points qui me font réfléchir tout le temps :
sécurisé si on parle de codeur (de vrai codeur) on sais que la sécurité aujourd'hui c'est un code qui évite les grosse failles bateau archi connues.
Vue du côté CMS ou Framework c'est bien sur une possible étude poussée du code a la maison qui fait que l'utilisateur du CMS ou framework sera vulnérable. La réponse est souvent la communauté derrière et sa réactivité (qui arrivera toujours trop tard pour certains en face d'une zeroDay).
Vue du côté dev personnalisé une fois les failles classique évitées l'attaque se fait ne aveugle donc a taton c'est beaucoup moins simple si c'est pas le code de mon "petit neuveux" ...

stable Un code perso déployé depuis des jours est plus stable qu'une solution open ... comprendre qu'une fois en régime établie une appli qui n'est pas agressé est stable hors la première démarche est de se placer hors contexte d'agression si on ne veux pas courir touts le temps ...

facilement développable sur un dev perso c'est souvent partir de code déjà développé ...

améliorable si je change de développeur ça c'est surement le point le plus chaud d'un dev perso qui est amoindris dans les options framework ou CMS ... Après améliorable j'ai envie de le penser comme "extensible" CAD que tu ne vas pas fondamentalement améliorer un site ou une appli web en touchant au core mais tu vas tout le temps être confronté a des nouveaux besoins ... ça c'est autre chose et c'est un souci moindre passé un temps d'analyse. Pour te donner un exemple je suis intervenus sur du joomla et du WP a ce jour il m'a tjs fallu prendre en main la bête la comprendre, après une fois les point d'entrés identifiés tu code des extensions en dehors du système donc c'est plus un souci. Bref que tu prenne en mains un soft maison ou un cms / framework ça change pas grand chose. Les solutions CMS / framework on juste "plus de candidats dispo" avantage tu problème code ouvert...

Après pour te donner un ordre de grandeur ça fait 10 ans que je maintiens un CMS qui a beaucoup évolué ça demande énormément de temps pour arriver à des options fines en front office comme en back office. C'est (en version quasi vierge prête a installer) 50Mo de code et data, plus de 3000 fichiers divers répartis dans 300 dossiers. C'est multilingue, multi-domaine, Wysiwyg, ça prend en compte pas mal de style de site (forum, annuaire,éditorial ...), c'est basé sur des templates, ... bref c'est autonome et si tu veux un truc poussé et bien fait je suis en mesure de te dire que c'est hors de prix si tu inclus pas des dev déjà réalisés pour que ton codeur n'ait juste qu'a se focaliser sur la partie métier de ton projet et ton déploiement visuel.
Perso j'ai déployé un truc il y a pas longtemps qui comprenait une vrai logique applicative liée au désir du client qui était située entre l'e-commerce et la simple vitrine. en partant de code rodé ça ne m'a pris qu'une petite semaine qui était surtout occupé a comprendre et formalise le besion du client pas a coder.

Je pense que ton désir de code fermé se trouve entre tes deux extrêmes. Pas du code open certes mais pas un truc from scratch car ça va te couter un os.
 
WRInaute passionné
Je rejoins Zeb sur tous les points de vue

J'ajouterais ceci:

Si tu prends un développeur perso ou un framework il y a aura dans tous les cas un problème de maintenance dans le temps, exemple au bout de 5 ans:

- Un framework en 5 ans évolue, il y aura des fork possibles, et je suis pas certain que si tu choisi un framework maintenant il sera encore maintenu dans 5 ans, ou si toutes les compatibilités seront maintenues, etc...(certains même meurent...)
- Si tu prends un un développeur perso et souhaite des modifications, alors il vaut mieux que cela soit le même développeur dans 5 ans...Et si c'est le même alors c'est cool, si c'est pas le même, alors tout dépend de comment il a coder ta plateforme, si il a fait ca avec des moufles, alors le prochain développeur s'arrachera les cheveux, pire, recommencera à zéro

Après le choix du php me semble judicieux dans le sens où tu es certain que dans 10 ans la communauté sera présente (je parierais pas sur ruby on rail par exemple). Si tu n'a pas besoin de performance de malade, alors php est tout à fait ok. Trouver un dev RubyOnRail est à mon sens plus compliqué...

Un développeur sérieux peut éviter pas mal de tentative de hacking (recherches de failles connues des frameworks, meta exploits)
 
Nouveau WRInaute
Merci pour vos avis !
Je penche beaucoup plus pour une solution php sans framework, bien codé et commenté.
 
WRInaute accro
Je prendrais plutôt un framework car il y a plus dans 1000 têtes que dans 1.
Les frameworks ont des test unitaires/intégration continue, chose importante quand c'est le "core" de l'application, c'est là où est la stabilité.
Ils ont des docs et API générée à partir de PHPDoc, très important aussi car tu ne sera jamais sûr à 100% que le dev initial restera sachant qu'il est le seul à maîtriser son code.
Il y a des plugins/bundles/modules, car pour un site comme tu voudrais, OAuth/ElasticSearch/Redis/RabbitMQ/REST... sont courants.
Regarde le marché de l'emploi, tu verras que c'est plus des dev PHP qu'on cherche mais des développeurs Symfony, Laravel, ZF, ...
En France on te conseillera plutôt Symfony 2 à cause du marketing SensioLabs qui l'a évangélisé.

http://phptrends.com/category/7
 
WRInaute accro
spout a dit:
Regarde le marché de l'emploi, tu verras que c'est plus des dev PHP qu'on cherche mais des développeurs Symfony, Laravel, ZF, ...
C'est juste mais est ce bon pour autant ?

En regardant la fonction de codeur sur 30 ans maintenant qu'est ce que je constate ?
Des empilages, une remise en question continuelle du code une maintenance obligée ET lourde en ressources humaines, ...

En regardant le web depuis 10 ans qu'est ce que je vois ?
Des "codeurs" (90%) qui empilent des bibliothèques pour faire un lien dans une page html .... :mrgreen:

Après 10 ans de maintenance d'un core full php (php 3 à 5) je constate un changement obligatoire important lié à l'évolution de php (une journée de travail avec une copine en papotant lors de la grosse généralisation de php 5) une autre a prévoir qui se fera avec une ou deux regex sur tout le code a cause de l'évolution MySql ... :wink:

Perso je pense que tu as raison sur le côté idéal d'un dev open avec des centaines d'intervenants mais je pense que cet avantage ne supplante pas un dev privé vis a vis de la maintenance car il induit une veille 100 fois plus importante aussi (et ceci même si cette veille n'induit que de la mise a jour "relativement facile")

Pour jouer sur les deux tableaux (CMS (pas un framework certes) et dev perso) je me prend plus la tête avec l'open source qu'avec le reste ....

Après le temps d'apprentissage d'un framework (ou d'un CMS) est souvent aussi important que celui du développement ... (surtout vrai pour la masse importante de dev peut ou pas qualifiés).

De toute façon failles et bugs sont partout, rien qu'allumer un poste windows c'est prendre un risque, la question est alors "est ce que je gère des failles difficiles a trouver pour un extérieur, ou es ce que je gère des failles exposées au public"

car il y a plus dans 1000 têtes que dans 1
ça fait aussi une grosse masse de doublons a gérer dans ces têtes ;-)
 
Nouveau WRInaute
Choisir une solution est prise de tête :wink:
Vos avis me conforte dans mon choix d'un dev privé, évidement dans le cas ou il serait très bien codé et documenté.
PHP POO, sans moteur de template.
 
WRInaute accro
Sans ?
PHP:
<span class="syntaxdefault"><?php echo htmlspecialchars</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> ENT_QUOTES</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'UTF-8'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> ?></span>
vs
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword">{{</span><span class="syntaxdefault"> var </span><span class="syntaxkeyword">}}</span><span class="syntaxdefault"> </span>
http://fabien.potencier.org/article/34/templating-engines-in-php

Sans oublier que tu te prives du système trop pratique d'héritage de template.
 
WRInaute impliqué
spout a dit:
Sans ?
PHP:
<span class="syntaxdefault"><?php echo htmlspecialchars</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> ENT_QUOTES</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'UTF-8'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> ?></span>
vs
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword">{{</span><span class="syntaxdefault"> var </span><span class="syntaxkeyword">}}</span><span class="syntaxdefault"> </span>
http://fabien.potencier.org/article/34/templating-engines-in-php

Sans oublier que tu te prives du système trop pratique d'héritage de template.

Bou le troll.
PHP:
<span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />function escape</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo htmlspecialchars</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> ENT_QUOTES</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'UTF-8'</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxdefault">?><br /></span><br />// dans les vues<br /><span class="syntaxdefault"><?php display</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> ?><br /></span> </span>

D'ailleurs, dans le lien que tu donnes, c'est : {{ var|escape }} non ?

Code:
{% for item in items %}
  * {{ item }}
{% else %}
  No item has been found.
{% endfor %}
Quand je vois ça franchement, ça pique les yeux :/
Ce n'est pas aussi compréhensible qu'il le dit.

Après, je ne dis pas que ce n'est pas utile. Mais je n'ai jamais utilisé de template et ça ne m'a jamais empêché de créer des sites.
D'ailleurs, j'utilise Zend Framework et j'ai un bon vieux <?php echo $this->escape($var); ?> qui me convient parfaitement.
Un template ajoute encore un couche de langage à connaître, à debugguer, etc.
 
WRInaute accro
Blount a dit:
D'ailleurs, dans le lien que tu donnes, c'est : {{ var|escape }} non ?
Ça dépend comment l'autoescape est configuré.
Au début j'étais partisan des templates en PHP pur (jusque il y a 2 ans, j'y ai été obligé avec Django), mais maintenant je trouve ça bcp plus clean avec Twig/Blade/etc (sauf Smarty pitié).

Maintenant à ton exemple en PHP pur, rajoute: i18n gettext, filters, template inheritance, reverse routing, heredoc, etc ...
 
WRInaute accro
devsite a dit:
Fait attention avec PHP natif, utiliser de l'objet est une chose faire du full objet avec c'est autre chose dans la mesure ou ce n'est pas typiquement un langage pensé pour l'objet. On parlerait de serveur JAVA j'aurais un avis très différent sur la POO (et les gros "design pattern classiques" aussi au passage) ...
La force de php c'est sa proximité du C donc sa légèreté dans le procédural de brute.

@ Blount && Spout > je confirme c'est du troll :D
 
WRInaute passionné
évidement il faut un moteur de template !

et effectivement les plus célèbres piquent les yeux...

C'est une surcouche nécessaire c'est certain, alors pourquoi rajouter un pesudo langage avec de nouvelles instructions, balisages, boucles, etc...?

Je ne sais plus quel moteur de template permet d'écrire du code php dans le template au lieu de trucs genre {% for item in items %}

Perso j'ai développer un moteur de template for simple (quelques lignes de codes...) qui peut aussi bien remplacer {MonTexte} par ce que je veut et qui peut aussi contenir du code php. L'avantage? n'importe qui peut comprendre le template sans ce taper la doc entière du moteur de template.

Quitte à programmer en php, autant pouvoir permettre d’insérer du code php dans les templates au lieu de pseudo code imbuvable...


si quelqu'un retrouve le nom du moteur de template permet d'écrire du code php dans le template, je suis premeur ;-)
 
WRInaute accro
@frenchhorn
Avec Blade tu px mixer les 2 dans le même car tout ce qu'il fait c'est un preg_replace() pr générer du PHP.
Sinon il y a aussi PHPTi en PHP pur.

Et comment tu gères les traductions dans tes templates ?
Si tu fais une boucle et qu'au dernier item du foreach tu veux faire un traitement spécial ?

Les filtres c'est quand même pratique:
PHP:
<span class="syntaxdefault"><?php if</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!empty(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)):</span><span class="syntaxdefault"> ?><?php echo $var</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><?php else</span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> ?></span>default<span class="syntaxdefault"><?php endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>
ou bien allez:
PHP:
<span class="syntaxdefault"><?php echo&nbsp;</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!empty(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">))&nbsp;?&nbsp;</span><span class="syntaxdefault">$var&nbsp;</span><span class="syntaxkeyword">:&nbsp;</span><span class="syntaxstring">'default'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>
vs
Code:
{{ var|default('default') }}
Et quand une fonctionnalité n'existe pas, tu px qd même définir tes méthodes/filtres.

Même en JavaScript c'est pareil, la plupart des frameworks font aussi du templating du même genre (Handlebars, Mustache, ...).
 
WRInaute accro
C'est un faut débat a mon avis car la question n'est pas de savoir ce qui est le plus facile a écrire ou lire, la question est de savoir ce qui est le plus performant a l'usage.

Autant je comprend qu'on ai mis en place des langages structurés qui nous évitent la très lourde tache de produire des suites binaires de data a fournir au processeur, par là même je comprend qu'on ai largement besoins de langages évolués pour passer au dessus de l'assembleur qui reste assez frustre au dessus du binaire pour produire du code exécutable.

On passe ensuite a des étages plus évolués comme le C qui n'est pas simplissime pour une bête appli web et qui est surtout mal interfacé avec la techno manipulée, il faut bien le dire donc là encore PHP s'impose comme un choix judicieux pour développer vite et orienté, mais a partir de là ? ... Pourquoi vouloir tjs en remettre une couche dans l'abstraction pour souvent juste exprimer un concept avec une syntaxe différente.

Car faut pas se tromper les frameworks par définition sont des surcouches logicielles et rien d'autre. Elles induisent certes une facilité rédactionnelle (pour autant qu'on y soit formé) et une rigidité structurelle (normative entre autre) mais n’apportent pas :
* plus de sécurité (sauf pour celui qui ne maitrise pas le langage natif)
* plus de moyens (ce que fait le framework est faisable en natif)
* plus de souplesse (typage induit par la norme du framework)
* plus de simplicité (toute couche logiciel a ses spécificités)

C'est donc trollesque car tout repose sur une aptitude a gérer une forme de langage à un degré X ou Y avec ses propres contraintes.

Hors les impératifs de productions sont eux d'ordre financiers :
* coût du système
* coût de dev
* coût de maintenance
* coût d'utilisation

La différence framework ou pas se trouve dans le dev et le système (de façon "général" un framework donné peut impacter la techno) hors si là c'est la même limonade c'est pas le dev qui va faire la différence un gars qui maitrise un environnement ou un autre donnera le même rendement.

Pour la maintenance un petit plus est a prévoir avec le framework (même si c'est pas grand chose) la partie codée mano (framework ou pas) sera identique faut repasser sur le code de toute façon de temps en temps.

Pour l'utilisation au final c'est kif l'interface finale est la même.

Après l'impératif financier il y a la performance, bah là je vois pas quoi dire si ce n'est qu'une couche logiciel en plus c'est moins bien qu'une couche en moins a code de qualité équivalente ...

Bon après c'est que mon point de vue hein :wink:
 
WRInaute accro
Moins il y a de code, plus c'est facile à maintenir. Le coût système est faible comparé au coût du dev.
Les systèmes de template se "compilent" vers du PHP, donc le cache d'opcode fonctionnera.
 
WRInaute accro
spout a dit:
Moins il y a de code, plus c'est facile à maintenir.
si tu fait abstraction de la maintenance du framework oui (en comparaison avec du natif). Sinon non car au final framework ou pas il n'y a pas 50 algo pour faire un truc.
spout a dit:
Le coût système est faible comparé au coût du dev.
ça se discute en fonction de la techno et du projet (il y a quand même des trucs hors de prix), mais surtout de l’espérance de vie de l'appli. car le coût système est cumulatif (charge fixe locations serveur) le dev est une charge exceptionnelle ...
D'ailleurs plus la techno est pointue et fermée (hors code projet) plus c'est cher.

Il y a quand même un point pas évoqué encore a ce point du débat, c'est la logique métier.

Si l'histoire est de "balancer de la page web" n'importe quoi fait l'affaire et t'as pas besoins d'une usine a gaz pour ça. A la limite je dois pourvoir encore écrire qques lignes en assembleur qui envoie ça sur un socket :D

Le gros truc qu'on ne sait pas c'est la nature du projet. Et ça c'est du très lourd potentiellement dans l'orientation technique ... :wink:
 
WRInaute impliqué
spout a dit:
Et comment tu gères les traductions dans tes templates ?
Spout, j'ai peur que tu utilises de mauvais arguments.
Avec Zend Framework (je le prend comme exemple, puisque je l'utilise), il suffit d'utiliser l'aide de vue de cette manière :
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />echo $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">translate</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Hello %s"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $var</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>
%s sera remplacé par $var.
Pour un code maison, une simple fonction peut faire la même chose.

spout a dit:
Si tu fais une boucle et qu'au dernier item du foreach tu veux faire un traitement spécial ?
Là, je n'ai pas d'exemple parce que ça dépend du contexte et de la nature du tableau.

spout a dit:
Les filtres c'est quand même pratique:
PHP:
<span class="syntaxdefault"><?php if</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!empty(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)):</span><span class="syntaxdefault"> ?><?php echo $var</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><?php else</span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> ?></span>default<span class="syntaxdefault"><?php endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>
Je ne fais jamais ça, c'est absurde (de mon point de vu).
J'utilise l'opérateur ternaire, comme tu l'indiques aussi.

spout a dit:
ou bien allez:
PHP:
<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!empty(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $var </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxstring">'default'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>
Oui, enfin, sauf que si tu connais les fonctions PHP, tu sais que empty fait aussi le boulot de isset, donc :
PHP:
<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">!empty(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $var </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxstring">'default'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>
C'est déjà plus court.

spout a dit:
vs
Code:
{{ var|default('default') }}
Et quand une fonctionnalité n'existe pas, tu px qd même définir tes méthodes/filtres.
En PHP aussi lol
Avec Zend, on pourrait imaginer un truc de ce genre :
PHP:
<span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">display</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"var"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"default"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"trim"</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault"> </span>
Dans l'aide de vue "display", on aurait un truc comme ça :
PHP:
<span class="syntaxdefault"><br />public function display</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$varName</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $default</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array $functions </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">())<br />{<br /></span><span class="syntaxdefault">    $value </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">view</span><span class="syntaxkeyword">->{</span><span class="syntaxdefault">$varName</span><span class="syntaxkeyword">})</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">view</span><span class="syntaxkeyword">->{</span><span class="syntaxdefault">$varName</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> $default</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$functions AS $function</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $value </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $function</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$value</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    echo $value</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault"> </span>

spout a dit:
Même en JavaScript c'est pareil, la plupart des frameworks font aussi du templating du même genre (Handlebars, Mustache, ...).
Le JavaScript, c'est quand plus chiant de gérer les chaines de caractères. À la limite, j'y verrai plus d'intérêt dans ce cas qu'en PHP.

Bon, je ne pense pas qu'on va faire toutes les comparaisons imaginable entre template ou pas.
Le mieux, c'est de développer de la façon qui nous convient le mieux, et surtout ne pas en faire une vérité absolue.
 
WRInaute accro
Blount a dit:
Spout, j'ai peur que tu utilises de mauvais arguments.
Bah désolé mais ici en Belgique on a 3 langues officielles, on hardcode pas les textes dans les templates comme on px se le permettre en France :)
Une fois que tu mets tous les cas d'utilisation possible bout à bout ça fait du code assez verbeux.
 
WRInaute impliqué
spout a dit:
Blount a dit:
Spout, j'ai peur que tu utilises de mauvais arguments.
Bah désolé mais ici en Belgique on a 3 langues officielles, on hardcode pas les textes dans les templates comme on px se le permettre en France :)
Une fois que tu mets tous les cas d'utilisation possible bout à bout ça fait du code assez verbeux.

Je ne comprend pas ta remarque.
Je n'ai pas dit que les traductions ne servent à rien, mais que c'était possible de le faire facilement dans les deux cas (template ou non).
Tu m'expliques ce que tu veux dire ?
 
WRInaute accro
Quand tu utilises couramment:
- Auto escaping
- Iterations
- Filters
- Whitespace handling
- Template inheritance
- Dates/Numbers i18n + timezone
- Gettext (avec pluralisation et extraction auto des msgid)
- Reverse routing
- Dynamic assets / metas
- Form theming
- Partials / Macros / Includes avec params
- ... et j'en passe.

En PHP pur, ça fait bcp plus de code à taper.
 
WRInaute impliqué
Bah ouai, je ne vois aucun rapport avec un système de template :/
Ce que tu décris, c'est l'utilisation d'un framework qui te fournis des outils pour effectuer les tâches les plus récurrentes, ce qui n'est pas le sujet de notre "débat" : template ou non.
 
WRInaute accro
/surrender :lol:
C'est vendredi et après une semaine complète de SF2 dans un projet avec 100+ entités je suis naze :mrgreen:
 
Discussions similaires
Haut