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

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

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

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

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

6 ответов

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам