Подтвердить что ты не робот

Интеграция Smarty в структуру Code Igniter

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

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

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

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

4b9b3361

Ответ 1

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

Там есть библиотека под названием "шаблон", которая отлично справляется с тем, что вы можете использовать только любой парсер шаблонов, который вы хотите:

Библиотека шаблонов CI - парсеры

Синтаксис довольно прост для интеграции в ваше приложение CI и место интеграции smarty.

Ответ 2

Слегка ОТ, надеюсь, что вы не против...

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

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

Ответ 3

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

Ответ 5

Не отображается ответ, выбранный для этого вопроса, и не было предоставлено актуальное решение для работы с последней версией 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/

Ответ 6

Интеграция Smarty в CodeIgniter? Это бриз! Шаблонная система в CodeIgniter является очень простой.

Выполните следующие действия для Smarty 3 в CI 3:

Загрузка CodeIgniter 3

Загрузите Smarty 3 и поместите его содержимое в папку "application/third_party/smarty"

Создайте файл "Custom_smarty.php" в "приложении/библиотеках" и добавьте этот код:

<?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.