如何将Smarty模板引擎添加到CodeIgniters3框架中



如何添加&在CodeIgniters 3中使用Smarty模板引擎?

请注意,CodeIgniters3没有模板引擎,您应该将HTML代码与PHP代码混合使用&标签。更不用说,你不能扩展其他观点(就像你在Laravel或Smarty中所做的那样(。

毕竟,这是一个框架,而不是额外的麻烦。

安装&配置

  1. 打开CodeIgniter文件夹&正在运行,所以您的欢迎页面正在运行。

  2. 转到Smarty下载页面并下载最新的">源代码(zip(".

  3. 提取Smarty ZIP文件夹并将其重命名为Smarty

  4. smarty文件夹从#3步骤移动到CodeIgniters应用程序/第三方文件夹。像这样-your_project/application/third_party/smarty

  5. 在项目的application/librarys/文件夹中创建新的PHP文件SmartyLibrary.PHP。像这样-your_project/application/libraries/SmartyLibrary.php

  6. 在您创建的SmartyLibrary.php文件中,放入以下内容,然后直接进入步骤#7

    <?php定义("BASEPATH"(或退出("不允许直接脚本访问"(;require_one(APPPATH'第三方/smarty/libs/smarty.class.php'(;类SmartyLibrary扩展Smarty{
    function __construct() {
    parent::__construct();
    // Define directories, used by Smarty:
    $this->setTemplateDir(APPPATH . 'views');
    $this->setCompileDir(APPPATH . 'cache/smarty_templates_cache');
    $this->setCacheDir(APPPATH . 'cache/smarty_cache');
    }
    
    }
  7. 分析__construct()的功能,特别是这部分:

    //定义Smarty使用的目录:$this->setTemplateDir(APPPATH.'views'(;$this->setCompileDir(APPPATH'cache/smarty_templates_cache'(;$this->setCacheDir(APPPATH.'cache/smarty_cache'(;
    

Smarty本身需要这3条线路(这是Smarty基本安装的一部分(。确保这些定义的目录存在于您的项目中(创建它们(,并确保它们具有正确的权限(smarty需要创建缓存文件(。

  1. 转到您的项目的application/config/autoload.php并像这样编辑:

    $autoload['libraries']=数组('MartyLibrary'=>'smarty'(

    或者如果你不想自动加载Smarty-在你的控制器中使用这个:

    $this->load->library('SmartyLibrary','smarty'(
  2. 就是这样!像使用任何其他CodeIgniter库一样使用smarty对象。像这样:

    $this->smarty->xxxxxxxxx('xxxxxxxxx',xxxxxxxx(

测试

  1. 考虑使用与上面给出的相同的Smarty目录(文件SmartyLibrary.php(-在项目的application/views/中创建新文件welcome.tpl(像这样:application/views/welcome.tpl(,其中包含以下内容:

    <html><页眉>lt;标题>这是标题<标题>lt/页眉><身体>{$message}<身体><html>
  2. 像这样编辑您的默认Welcome.php控制器(假设您自动加载智能库(:

    <?php已定义("BASEPATH"(或退出("不允许直接脚本访问"(;class欢迎扩展CI_Controller{public function index(){
    // Assign session data to Smarty:
    $this->smarty->assign('message', "This is Smarty test!");
    // Compile smarty template and load it to user:
    $this->smarty->display('welcome.tpl');
    }
    
    }
  3. 尝试加载项目的基本URL。您应该在屏幕上看到"这是Smarty测试!"消息!。

最后的想法

  • 在Smarty视图中定义CSS或JS文件的位置时,请使用类似的{base_url()}css/bootstrap.min.css
  • CodeIgniter视图<?php echo form_open('books/input'); ?>中的类似内容现在可以在Smarty模板中替换为{form_open('books/input')}

相关内容

  • 没有找到相关文章

最新更新