2008-09-03 16 views
19

Un poco de historia Información:
he estado buscando en un marco de PHP pocos recientemente, y todo se redujo a dos. El Zend Framework o CodeIgniter.integración Smarty en el marco CodeIgniter

Prefiero CodeIgniter, debido a su diseño simple. Es hueso desnudo, y simplemente se mantiene simple. Sin embargo, lo que no me gusta es el sistema de plantillas débiles. El sistema de plantillas es importante para mí, porque trabajaré con otro diseñador. Ser capaz de darle un buen sistema de plantilla es una gran ventaja.

Zend fue la segunda opción, debido al mejor sistema de plantilla que está incorporado. Zend es una bestia diferente en comparación con CodeIgniter. Se enfatiza el "acoplamiento flexible entre módulos", pero es un marco más grande. No me gusta sentir que tengo muchas cosas bajo el capó que nunca uso. Eso es una sobrecarga innecesaria en mi opinión, así que pensé en poner un sistema de plantillas en CodeIgniter: Smarty.

Pregunta (s): ¿Qué tan fácil/difícil es el proceso para integrar Smarty en CodeIgniter? Desde mi escaneo inicial de la documentación de CodeIgniter, puedo ver que el diseño del marco es lo suficientemente fácil de entender, y no anticipo problemas. Quiero saber si alguien lo ha usado antes y, por lo tanto, estoy al tanto de cualquier "error" que haya experimentado que lo haga más difícil de lo que debería o imposible. También quiero saber si esto es algo bueno que hacer. ¿El sistema de plantillas en CodeIgniter es suficiente para un uso normal? ¿Hay algún otro módulo de plantilla que sea bueno para CodeIgniter aparte de Smarty? ¿Me va mejor con Zend Framework? ¿Se está inventando alguna rueda aquí? ¡Gracias por tu ayuda!

+0

Como han dicho otros, p. el componente Zend_View en sí mismo es muy poderoso y extensible [con ayudantes, etc.]. No necesitas Smarty en la mezcla. Además, Smarty es un código PHP4 muy pesado que, en general, quieres evitar. Aparte de eso, use cualquier marco con el que se sienta más cómodo. – Till

+0

Compruebe [mi respuesta] [1] en tema similar! [1]: http://stackoverflow.com/a/10297502/934599 – uzsolt

+0

@Teniendo en cuenta que smarty3 va a php5 compatible y tal vez php4 no es suficiente. Lo siento, no vi que sea un tema antiguo :( – uzsolt

Respuesta

1

Hice una rápida búsqueda en Google y encontró lo siguiente: http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html http://codeigniter.com/forums/viewthread/67127/

Si el diseñador no está familiarizado con Smarty, creo que es casi lo mismo que si se utiliza el sistema de CodeIgniter plantillas existentes (que las hojas todo a PHP en realidad). También depende de la complejidad del proyecto en cuestión.

También puede enganchar Smarty con Zend Framework. Es más complejo que con CodeIgniter, pero ya hay un manual sobre cómo hacer exactamente eso en la documentación de ZF. http://framework.zend.com/manual/en/zend.view.scripts.html Además de muchos tutoriales en la red.

En mi opinión, es casi lo mismo, puede usar PHP puro o Smarty como su plantilla "motor", por lo que depende del proyecto. Además, compare un desarrollador que tenga una amplia experiencia y que ya tenga una biblioteca de ayudantes de visualización para que use PHP puro, en comparación con un diseñador que no sepa nada de PHP, pero que tenga una amplia experiencia con Smarty. A veces, las decisiones deben basarse en quién hará qué.

2

Ligeramente OT, espero que no le importe ...

Soy un usuario de Zend Framework y creo que vale la pena decir que el acoplamiento débil significa que no es necesario incluir todos los archivos que usted está no usando activamente. Afortunadamente, esto niega su preocupación por gastos indirectos innecesarios.

Con los diseños agregados en un lanzamiento reciente de ZF, su plantilla es realmente difícil de fallar ... y es completamente conectable como menciona Favio. Cuanto más uso ZF, más me gusta; ¡hacen las cosas como yo las haría!

3

Perdón por resucitar una pregunta anterior, pero ninguna de las respuestas se ha marcado como "aceptada" todavía.

Hay una biblioteca llamada "plantilla" que hace un gran trabajo de lo que permite utilizar casi cualquier analizador de plantilla que desea:

Template CI Library - Parsers

La sintaxis es bastante fácil de integrar en su aplicación de CI y el punto de integración inteligente en.

0

No parece que haya habido una respuesta seleccionada para esta pregunta ni se ha proporcionado una solución actualizada para trabajar con la última versión de Codeigniter (2.0) y la última versión de Smarty (3.0.5)

Esta biblioteca le permite utilizar Smarty 3 con Codeigniter 2.0 para que pueda usar funciones específicas de Smarty 3, como la herencia de la plantilla.

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

0

La integración de Smarty en CodeIgniter? Es una brisa! El template system in CodeIgniter es muy básico.

Siga estos pasos para Smarty 3 en CI 3:

Descargar CodeIgniter 3

Descargar Smarty 3 y poner su contenido en 'application/THIRD_PARTY/Smarty' carpeta

Crear 'Custom_smarty.php 'archivo en 'application/libraries' y añade este código:

<?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/'); 
    } 
} 
?> 

Crear '' & '' pliegue templates_c plantillas res dentro de la carpeta 'application/views'

Crear archivos simple 'test.tpl' en 'puntos de vista de aplicación// templates' carpeta

abierto 'autoload.php' en 'config application /' carpeta y añadir:

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

Y en el interior de un controlador: $this->custom_smarty->display('test.tpl');

Si está trabajando en el servidor local establecer los permisos: sudo chmod -R 777 templates_c. Otra cosa ponerse en contacto con su servicio de alojamiento, si detecta el error No se puede escribir el archivo. Primero asegúrese de que la carpeta templates_c exista.

De lo contrario, puede utilizar otro motor de plantillas como Twig.