2008-09-03 5 views
19

Un peu d'histoire Informations:
J'ai regardé quelques framework PHP récemment, et il est descendu à deux. Le Zend Framework ou CodeIgniter.intégration Smarty dans le cadre CodeIgniter

Je préfère CodeIgniter, en raison de sa conception simple. C'est de l'os très nu, et il est juste gardé simple. La chose que je n'aime pas, c'est le système de template faible. Le système de gabarit est important pour moi, car je vais travailler avec un autre designer. Pouvoir lui donner un bon système de gabarit est un gros plus.

Zend était le deuxième choix, en raison du meilleur système de gabarit qui est intégré. Zend est une bête différente par rapport à CodeIgniter. Il met l'accent sur "le couplage lâche entre les modules", mais c'est un cadre plus large. Je n'aime pas avoir beaucoup de choses sous le capot que je n'utilise jamais. À mon avis, c'est une surcharge inutile, alors j'ai pensé à mettre un système de template dans CodeIgniter: Smarty.

Question (s): Est-il facile/difficile d'intégrer Smarty dans CodeIgniter? De mon analyse initiale de la documentation CodeIgniter, je peux voir que la mise en page de la structure est assez facile à comprendre, et je n'anticipe aucun problème. Je veux savoir si quelqu'un l'a déjà utilisé, et donc sont au courant des «pièges» que vous avez vécus qui vont rendre cela plus difficile que cela devrait être ou impossible à réaliser. Je veux aussi savoir si c'est une bonne chose à faire. Le système de template dans CodeIgniter est-il suffisant pour une utilisation normale? Y a-t-il d'autres modules de template qui sont bons pour CodeIgniter en dehors de Smarty? Je ferais mieux de partir avec Zend Framework? Une roue est-elle en train d'être inventée ici? Merci de votre aide!

+0

Comme d'autres l'ont dit, par ex. le composant Zend_View lui-même est très puissant et extensible [avec des aides, etc.]. Vous n'avez pas besoin de Smarty dans le mix. En outre, Smarty est un code PHP4 très lourd que vous voulez éviter en général. En dehors de cela, utilisez le cadre avec lequel vous êtes plus à l'aise. – Till

+0

Cochez [ma réponse] [1] dans un sujet similaire! [1]: http://stackoverflow.com/a/10297502/934599 – uzsolt

+0

@Jusqu'à ce que smarty3 soit compatible php5 et peut-être que php4 ne suffira pas. Désolé, je n'ai pas vu que c'est un vieux sujet :( – uzsolt

Répondre

1

J'ai fait une recherche rapide sur Google et a trouvé ce qui suit: http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html http://codeigniter.com/forums/viewthread/67127/

Si le concepteur est pas familier avec Smarty, je pense qu'il est à peu près la même chose que si vous utilisez le système CodeIgniter templating existant (qui feuilles tout à PHP en fait). Cela dépend aussi de la complexité du projet en cours.

Vous pouvez également accrocher Smarty avec Zend Framework. C'est plus complexe qu'avec CodeIgniter, mais il y a déjà une introduction sur comment faire exactement cela dans la documentation de ZF. http://framework.zend.com/manual/en/zend.view.scripts.html Plus beaucoup de tutoriels sur le net. À mon avis c'est presque pareil, vous pouvez utiliser PHP pur ou Smarty comme modèle de "moteur", donc cela dépend du projet. Aussi, comparez un développeur qui a une vaste expérience et qui a déjà une bibliothèque d'aides à la visualisation, donc elle utilise du PHP pur, par opposition à un concepteur qui ne connaît rien à PHP, mais possède une vaste expérience avec Smarty. Parfois, les décisions doivent être basées sur qui va faire quoi.

2

légèrement OT, espérons ne vous dérange pas ...

Je suis un utilisateur Zend Framework et je pense qu'il vaut la peine de dire que le couplage lâche signifie que vous ne avez pas besoin d'inclure tous les fichiers que vous êtes ne pas utiliser activement. Espérons que cela ne vous préoccupe pas des frais généraux inutiles.

Avec les ajouts de mise en page ajoutés dans une version récente de ZF, il est très difficile de faire des gabarits ... et c'est complètement pluggable comme le mentionne Favio. Plus j'utilise ZF, plus je l'aime; ils font les choses comme je les ferais!

3

Désolé de ressusciter une vieille question - mais aucune des réponses n'a été marquée comme "acceptée" pour le moment.

Il y a une bibliothèque appelée « modèle » qui fait un excellent travail de vous permettre d'utiliser à peu près tout analyseur de modèle que vous souhaitez:

Template CI Library - Parsers

La syntaxe est assez facile pour intégrer dans votre application de CI et le spot d'intégration smarty.

0

Aucune réponse n'a été sélectionnée pour cette question et aucune solution n'a été mise à jour pour utiliser la dernière version de Codeigniter (2.0) et la dernière version de Smarty (3.0.5).

Cette bibliothèque vous permet d'utiliser Smarty 3 avec Codeigniter 2.0 afin de pouvoir utiliser les fonctionnalités spécifiques de Smarty 3 telles que l'héritage de template.

http://ilikekillnerds.com/2010/11/using-smarty-3-in-codeigniter-2-a-really-tiny-ci-library/

0

Intégration Smarty dans CodeIgniter? C'est une brise! Le template system in CodeIgniter est très basique.

Suivez ces étapes pour Smarty 3 CI 3:

Télécharger CodeIgniter 3

Télécharger Smarty 3 et mettre son contenu en application/third_party/Smarty 'dossier

Créer « Custom_smarty.php 'fichier 'application/bibliothèques' et ajoutez ce code:

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

require_once(APPPATH.'third_party/smarty/Smarty.class.php'); 

class Custom_smarty extends Smarty { 

    function __construct() 
    { 
    parent::__construct(); 
    $this->setTemplateDir(APPPATH.'views/templates/'); 
    $this->setCompileDir(APPPATH.'views/templates_c/'); 
    } 
} 
?> 

Créer' fold modèles de & 'de templates_c' ers intérieur 'application/views' dossier

créer simplement le fichier 'test.tpl' dans 'application/views/templates' dossier

Ouvrir 'autoload.php' dans 'application/config' dossier et ajouter:

$autoload['libraries'] = array('custom_smarty'); 

Et à l'intérieur d'un contrôleur: $this->custom_smarty->display('test.tpl');

Si vous travaillez sur les autorisations localhost définir: sudo chmod -R 777 templates_c. Otherwhise contacter votre service d'hébergement, si vous attrapez l'erreur Impossible d'écrire le fichier. Assurez-vous d'abord que le dossier templates_c existe.

Sinon, vous pouvez utiliser un autre moteur de gabarit tel que Twig.