12
votes

Quelles sont les différences entre le cadre et le moteur de modèle?

Quelle est la différence entre les cadres comme Zendframework et un moteur de modèle comme Smarty?

Que devrais-je commencer par comme débutant?


0 commentaires

4 Réponses :


3
votes

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é.


0 commentaires

7
votes

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>

Création d'un moteur de modèle, en tant que programmeur h2>

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> xxx pré>

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>

salut.php strong> 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>


2 commentaires

Je ne pense pas que les moteurs de modèles ne soient pas non ignifiés dans PHP, ils font 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 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



0
votes

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.

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.

Vous pouvez également combiner Smarty avec EaceCelerator http://eaccelerator.net/ pour accélérer les choses un peu.


2 commentaires

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".



0
votes

bref:

Un moteur de modèle ne fait rien de plus qu'un peu plus avancé Str_replace. Il recherche des balises spéciales dans le gabarit et les remplace avec les valeurs correspondantes. Des moteurs plus avancés (comme Smarty) ont également des boucles et des conditions.

Un cadre Web (comme Zend) fait la plupart des trucs de base d'une page Web, prenant des demandes de page et les transmettent aux gestionnaires responsables du traitement de la demande et transmettant généralement les informations de réponse à Un moteur de modèle pour la séparation de la logique et de la mise en page. Frameworks Web (il existe d'autres types de cadre, c'est-à-dire des cadres d'interface graphique, des cadres de réseautage, des cadres graphiques, etc.) ont généralement des aides utilitaires qui vous aident à répondre à tout un site Web typique des besoins, de vérification de formulaires, de gestion de la session, de génération de captcha, de réécriture de la Session, de la réécriture de l'URL. ..


0 commentaires