Вопросы | codeigniter

Smarty интеграция в платформу Code Igniter

Вопрос

paan | 8886 просмотров | рейтинг: 0

Немного справочной информации: Недавно я посмотрел несколько PHP-фреймворков, и их стало два. Zend Framework или CodeIgniter. Я предпочитаю CodeIgniter, из-за его простого дизайна. Это очень голая кость, и она просто хранится просто. Однако мне не нравится слабая система шаблонов. Система шаблонов важна для меня, потому что я буду работать с другим дизайнером. Возможность дать ему хорошую систему шаблонов - большой плюс. Zend был вторым выбором из-за лучшей встроенной системы шаблонов. Zend - другой зверь, хотя по сравнению с CodeIgniter. В нем подчеркивается слабая связь между модулями, но это большая основа. Мне не нравится чувствовать, что у меня под капотом много вещей, которыми я никогда не пользуюсь. По моему мнению, это лишние накладные расходы, поэтому я подумал о том, чтобы поместить систему шаблонов в CodeIgniter: Smarty. Вопрос (ы): Насколько прост / сложен процесс интеграции Smarty в CodeIgniter? Из моего первоначального сканирования документации CodeIgniter я вижу, что структура фреймворка достаточно проста для понимания, и я не ожидаю никаких проблем. Я хочу знать, использовал ли кто-нибудь это раньше, и поэтому знаю, что у вас есть какие-то проблемы, которые могут сделать это сложнее, чем должно быть или невозможно осуществить. Я также хочу знать, хорошо ли это вообще делать. Достаточно ли системы шаблонов в CodeIgniter для нормального использования? Существуют ли какие-либо другие шаблоны модулей, которые хороши для CodeIgniter, кроме Smarty? Мне лучше с Zend Framework? Любое колесо изобретается здесь? Спасибо за помощь!

Комментарии:

Till

Как уже говорили другие, например сам компонент Zend_View очень мощный и расширяемый [с помощниками и т. д.]. Вам не нужно Smarty в смеси. Кроме того, Smarty - это очень тяжелый PHP4-код, который в целом вы хотите избежать. Кроме того, используйте любую среду, которая вам удобнее.


uzsolt

Проверьте [мой ответ] [1] в аналогичной теме!   [1]:


Anonymous

@ До сих пор, насколько я знаю, smarty3 работает с php5-совместимыми и, возможно, php4 недостаточно. Извините, я не видел, что это старая тема :(




Ответы

Dave Gregory

+ 1 -
Я сделал быстрый поиск в Google и обнаружил следующее: http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html http://codeigniter.com/forums/viewthread/67127/ Если дизайнер не знаком со Smarty, я думаю, что это почти так же, как если бы вы использовали существующую систему шаблонов CodeIgniter (которая фактически оставляет все для PHP). Это также зависит от сложности данного проекта. Вы также можете подключить Smarty к Zend Framework. Это более сложно, чем с CodeIgniter, но уже есть учебник, как это сделать, в документации ZF. http://framework.zend.com/manual/en/zend.view.scripts.html Плюс множество учебников в сети. На мой взгляд, это почти то же самое, вы можете использовать чистый PHP или Smarty в качестве движка шаблонов, так что это зависит от проекта. Кроме того, сравните разработчика, который имеет большой опыт работы и уже имеет библиотеку помощников вида, поэтому она использует чистый PHP, а не дизайнер, который ничего не знает о PHP, но имеет большой опыт работы со Smarty. Иногда решения должны основываться на том, кто что будет делать.  


JayTee

+ 2 -
Немного ОТ, надеюсь, ты не возражаешь ... Я - пользователь Zend Framework и думаю, что стоит сказать, что слабая связь означает, что вам не нужно включать файлы, которые вы не используете активно. Надеюсь, это сводит на нет ваши опасения по поводу ненужных накладных расходов. Благодаря макету, добавленному в недавнем выпуске ZF, его шаблон действительно трудно испортить ... и он полностью подключаем, как упоминает Фавио. Чем больше я использую ZF, тем больше мне это нравится; они делают то, что я делаю!  


Randell

+ 3 -
Извините, что воскресил старый вопрос - но ни один из ответов еще не помечен как принятый. Есть библиотека с именем template, которая позволяет вам использовать практически любой анализатор шаблонов: Библиотека шаблонов CI - V1.4.1 Синтаксис довольно легко интегрируется в ваше приложение CI и обеспечивает более разумную интеграцию.  


Dwayne Charrington

+ 0 -
Проверьте эту пользовательскую библиотеку шаблонов CodeIgniter. Я уже использовал его в нескольких проектах, и он прост в использовании. Я знаю, что этот пост опоздал, но стоит проверить.  


Favio

+ 0 -
Похоже, что для этого вопроса не был выбран ответ, и не было предоставлено современное решение для работы с последней версией Codeigniter (2.0) и последней версией Smarty (3.0.5). Эта библиотека позволяет вам использовать Smarty 3 с Codeigniter 2.0, чтобы вы могли использовать специфические функции Smarty 3, такие как наследование шаблонов. http://ilikekillnerds.com/2010/11/using-smarty-3-in-codeigniter-2-a-really-tiny-ci-library/  


Luca Mori Polpettini

+ 0 -
Интегрируешь Smarty в CodeIgniter? Это бриз! Система шаблонов в CodeIgniter очень проста. Выполните следующие шаги для Smarty 3 в CI 3: Скачать CodeIgniter 3 Загрузите Smarty 3 и поместите его содержимое в папку application / third_party / smarty Создайте файл 'Custom_smarty.php' в 'application / library' и добавьте этот код:
 <?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/');
  }
}
?>
 

Создайте папки 'templates' 'templates_c' внутри папки 'application / views' Создайте простой файл 'test.tpl' в папке 'application / views / templates' Откройте файл «autoload.php» в папке «application / config» и добавьте:
 $autoload['libraries'] = array('custom_smarty');
 

И внутри контроллера: $this->custom_smarty->display('test.tpl'); Если вы работаете на локальном хосте, установите права доступа: sudo chmod -R 777 templates_c. В противном случае свяжитесь с вашим хостингом, если уловите ошибку Невозможно записать файл. Сначала убедитесь, что папка templates_c существует. В противном случае вы можете использовать другой шаблонизатор, например Twig.


Теги

codeigniter | zend-framework | smarty