Quelle est la différence entre les cadres comme Zendframework et un moteur de modèle comme Smarty? P>
Que devrais-je commencer par comme débutant? P>
4 Réponses :
Les cadres sont plus complexes que les moteurs de modèles. Un cadre peut contenir un moteur de modèle mais non inverse. Un cadre peut vous aider de manière nuisante de manière à créer votre application (Web). Un moteur de modèle est simplement utilisé pour analyser les variables dans votre modèle HTML préformaté. P>
Modèles de moteurs sont là pour faciliter la vie du concepteur Web. Frameworks sont pour les programmeurs.
Crayens peut contenir un ou plusieurs moteurs de gabarits. Étant donné que les cadres sont pour les programmeurs, le nouveau moteur de modèle de programmateur du programmeur peut être intégré dans le cadre. P>
En tant que programmeur qui n'a pas à travailler avec un concepteur, dans PHP, vous n'avez pas vraiment besoin de moteur de modèle, puisque PHP elle-même peut être entouré de (x) code HTML. p>
preuve du fait que PHP peut être utilisé comme PHP. Un moteur de modèles, voici la façon dont vous pouvez séparer la logique commerciale de la vue de la vue. P>
C'est un moteur de modèles factice à domicile. Ce n'est pas complet, ce n'est pas sûr. Ce n'est qu'un prototype de vous montrer l'idée de base de modèles. P>
Vous avez probablement déjà entendu parler de MVC - ou non - cela n'a pas d'importance. La pratique décrite ci-dessous est similaire à celle-ci, mais vous n'avez pas à programmer oop ou utiliser un framework p>
Vos "vues" sont des modèles simplement qui obtiennent des variables de votre script. Dans le script principal (ici salue.php), vous ne faites que la "logique commerciale". "Logic Business" inclut toutes les opérations de base de données, fonctionnant avec des sessions, faire tous les mathématiques et vérifier une entrée valide, le filtrant éventuellement. P>
alors tout ce que vous avez à faire est de stocker les données que vous voulez être affiché dans des variables intermédiaires. Dans l'exemple ci-dessous, c'est $ Titre, $ Nom, $ showdata et $ erreurs. P>
La fonction rendu () est une chose importante: elle isole le modèle sur le point d'être inclus dans le monde extérieur de l'entreprise Logique de notre script en utilisant la portée automatique des variables - les variables extraire () 'ED de la matrice associative sont locales Pour rendant () - Le modèle entier n'existe que dans cette fonction. p>
Veuillez noter que les variables extrayez () ED sont nommées d'après les indices associatifs du deuxième paramètre à rendre (). Si votre modèle ne nécessite pas de noms différents pour les variables, vous pouvez supprimer certaines lignes en initialisant la matrice comme celle-ci: p> la variable $ do_greet n'existe plus dans votre modèle. Au lieu de cela, la même variable sera connue sous le même nom que dans votre script logique de votre entreprise, à savoir $ showdata. P> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title ?></title>
</head>
<body>
<?php
if($do_greet) {
echo 'Hi ',$name;
}
if(count($errors)) {
if(count($errors)>1) {
echo '<p class="error">',implode('</p><p class="error">',$errors),'</p>';
}
else {
echo '<p class="error">'.$errors[0].'</p>';
}
}
?>
<form method="post">
<input name="name" />
<input type="submit" name="submit" />
</form>
</body>
</html>
Je ne pense pas que les moteurs de modèles ne soient pas non ignifiés dans PHP, ils font i> Ecrire la mise en page plus facile, car ils ont souvent des aides agréables (en cours d'exécution des hosses htmlentities sur la sortie, offrant des comptoirs en boucle et la définition d'impair / Même / Première / Dernières variables pour la boucle, ...). En outre, il existe des concepteurs Web qui ne connaissent pas PHP et parfois vous sont I> forcés de travailler avec eux. Et s'ils savent PHP, ils ont tendance à l'abuser d'une manière qu'aucun développeur ne puisse jamais imaginer. En leur fournissant un moteur de modèle, rend votre travail de plus en plus de développeur, car vous n'avez plus besoin de vérifier leurs modèles.
Je n'ai pas dit que les moteurs de modèles sont inutiles, j'ai dit qu'un programmeur, tout seul, n'a pas vraiment besoin d'un. De couse, il y a le "facteur webdesigner" entrant en jeu
Un cadre comme Zend Framework est essentiellement une extension sur PHP, tandis que Smarty est un moteur de modèle qui séparait simplement toutes vos variables PHP de l'extrémité frontale (HTML), tout en prenant en charge des méthodes simples de maquette. p>
Je vous recommanderai de commencer à apprendre Smarty pour la simplicité de celui-ci et vous serez surpris de plus en plus facilité de combiner votre conception frontale avec votre code PHP. P>
Vous pouvez également combiner Smarty avec EaceCelerator http://eaccelerator.net/ pour accélérer les choses un peu. p>
Pourquoi le vote en bas? Il vaut mieux expliquer pourquoi vous êtes en désaccord que pour simplement crier non et vous échapper.
Probablement à cause de "un cadre [...] est essentiellement une extension de langue au-dessus de PHP". Vérifiez votre compréhension du "langage de programmation".
bref: p>
Un moteur de modèle Un cadre Web