首页 > 程序开发 > PHP > CI+Smarty配置于third_party文件夹里,降低偶合性
2013
02-01

CI+Smarty配置于third_party文件夹里,降低偶合性

利用ci提供的加载第三方控件包(third_party),进行打包,降低偶合性

第一步(准备开源代码):
准备CodeIgniter 2.0.3版本(http://codeigniter.org.cn/downloads)
准备Smarty   3.1.3版本(http://www.smarty.net/download)

第二步(部署目录):
1:在htdocs建立一文件夹名为:demo_ci(名字可随意取)

2:解压ci包.将CI文件根目录(index.php同级目录)全有文件和文件夹拷至于demo_ci根目录.

3:解压smarty包,
先找到application/third_party目录下新建名为allyes_Bar文件夹.
再allyes_Bar目录下新建2个文件夹:
libararies ->将解压好的smarty包里的libs拷贝此目录,更名为smarty
smarty_dir ->新建三个文件夹:cache,configs,tpl_c(三个全属smarty)

第三步(让ci框架支持smarty模板):
1:找到demo_ci目录下的index.php文件,打开,在任意行添加二行代码(请记住ROOT定义的名称):
if(!defined(‘ROOT’))
define(‘ROOT’,dirname(__FILE__));
if (!defined(‘DS’))
define(‘DS’, DIRECTORY_SEPARATOR);//兼容linux,windows. 表示”/”

1:找到application/third_party/allyes_Bar/libraries目录下,
新建Ci_smarty.php文件
添加代码如下:
<?php
require

(ROOT.DS.APPPATH.”third_party”.DS.”allyes_Bar”.DS.”libraries”.DS.”smarty”.DS.”Smarty.class.php”);
class Ci_smarty extends Smarty{
function __construct(){
parent::__construct();
self::loadsmarty();
}
function loadsmarty(){
$third_dir=ROOT.DS.APPPATH.”third_party”.DS.”allyes_Bar”.DS.”smarty_dir”.DS; // this is three

direction
$this->template_dir=   ROOT.DS.APPPATH.’views’.DS;//smarty模板文件指向ci的

views文件夹
$this->compile_dir  =   $third_dir .’tpl_c’.DS;
$this->config_dir    =   $third_dir .’configs’.DS;
$this->cache_dir     =   $third_dir .’cache’.DS;
$this->left_delimiter = ‘<{‘;
$this->right_delimiter = ‘}>';
}
}
?>

第四步(测试ci+smarty…):
1:找到demo_ci/application/views
根目录下新建一模板文件test.html
编写如下代码:
<html>
<head></head>
<body>
<{$page_content}>  //注意<{$name}>与smarty定义有关
</body>
</html>
1:找到application/controllers
根目录下新建一测试类 ci_smarty_test.php
编写如下代码:
<?php
if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);

class ci_smarty_test extends CI_Controller{ //控ci写法继承CI_Controller
function __construct(){
parent::__construct();
}
function index(){
$this->load->add_package_path(APPPATH.”third_party/allyes_Bar”);//add_package_path好似

java/C#里的加载包
$this->load->library(“ci_smarty”);//libraries会先查找包里的libraries中的ci_smarty.php文


$this->ci_smarty->assign(“page_content”,”<h1>this is hello page</h1>”); //smarty设置值
$this->ci_smarty->display(“test.html”);
}
}

?>

第五步:
输入:
http://localhost/demo_ci/index.php/ci_smarty_test
测试成功…
有任何问题可加入PHP技术群:111787608.提供源码下载

最后编辑:
作者:严嵩
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!