Smarty интеграция в платформу CodeIgniter - PullRequest
19 голосов
/ 03 сентября 2008

Немного справочной информации :
Недавно я посмотрел несколько PHP-фреймворков, и их стало два. Zend Framework или CodeIgniter.

Я предпочитаю CodeIgniter из-за его простого дизайна. Это очень голая кость, и она просто хранится просто. Однако мне не нравится слабая система шаблонов. Система шаблонов важна для меня, потому что я буду работать с другим дизайнером. Возможность дать ему хорошую систему шаблонов - большой плюс.

Zend был вторым выбором из-за лучшей встроенной системы шаблонов. Zend - другой зверь, хотя по сравнению с CodeIgniter. В нем подчеркивается «слабая связь между модулями», но это большая основа. Мне не нравится чувствовать, что у меня под капотом много вещей, которыми я никогда не пользуюсь. По моему мнению, это лишние накладные расходы, поэтому я подумал о том, чтобы поместить систему шаблонов в CodeIgniter: Smarty.

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

Ответы [ 6 ]

3 голосов
/ 06 марта 2009

Извините, что воскресил старый вопрос - но ни один из ответов еще не помечен как принятый.

Есть библиотека с именем "template", которая отлично работает, позволяя вам использовать практически любой синтаксический анализатор шаблонов:

Библиотека шаблонов CI - V1.4.1

Синтаксис довольно легко интегрируется в ваше приложение CI, а разумная точка интеграции включена.

2 голосов
/ 12 сентября 2008

Слегка ОТ, надеюсь, ты не возражаешь ...

Я - пользователь Zend Framework, и я думаю, что стоит сказать, что слабая связь означает, что вам не нужно включать файлы, которые вы не используете активно. Надеюсь, это сведет на нет ваше беспокойство по поводу ненужных накладных расходов.

С помощью макетов, добавленных в недавний выпуск ZF, его шаблон действительно сложно найти ... и он полностью подключаем, как упоминает Фавио. Чем больше я использую ZF, тем больше мне это нравится; они делают то, что я делаю!

1 голос
/ 03 сентября 2008

Я сделал быстрый поиск в 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. Иногда решения должны основываться на том, кто что будет делать.

0 голосов
/ 15 мая 2015

Интеграция 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');

Если вы работаете на localhost, установите права доступа: sudo chmod -R 777 templates_c. В противном случае свяжитесь с вашим хостингом, если уловите ошибку Невозможно записать файл. Сначала убедитесь, что папка templates_c существует.

В противном случае вы можете использовать другой шаблонизатор, например Twig.

0 голосов
/ 02 декабря 2010

Похоже, что для этого вопроса не был выбран ответ и не было предоставлено современное решение для работы с последней версией 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/

0 голосов
/ 30 июля 2009

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

...