专业网站建设品牌,18年专业建站经验,服务6000+客户--广州松河
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
广州松河
>
技术支持
> CodeIgniter辅助之third_party
CodeIgniter辅助之third_party
来源:网络整理 时间:2023/2/14 0:09:24 共
3656
浏览
third_party用来存放系统中引入的第三方类库,类库通常提供的功能比较丰富,相应的学习成本也要高些以及系统中能用到功能有限,所以建议在引入类库时进行适当的封装,让系统中更方便使用,其他人使用时只需关注扩展的方法而无法关注具体的实现。以CI集成Twig模版为例吧。
首先需要下载Twig类库,并放在third_party中,然后在libraries中进行一次封装,示例如下:
PHP
复制代码
<?php
if
(
!
defined
(
'BASEPATH'
)
)
exit
(
'No direct script access allowed'
)
;
require
APPPATH
.
'third_party/Twig/Autoloader.php'
;
/**
* Twig模版引擎
*
*/
class
Twig
{
public
$twig
;
public
$config
;
private
$data
=
array
(
)
;
/**
* 读取配置文件twig.php并初始化设置
*
*/
public
function
__construct
(
$config
)
{
$config_default
=
array
(
'cache_dir'
=>
false
,
'debug'
=>
false
,
'auto_reload'
=>
true
,
'extension'
=>
'.tpl'
,
)
;
$this
->
config
=
array_merge
(
$config_default
,
$config
)
;
Twig_Autoloader
::
register
(
)
;
$loader
=
new
Twig_Loader_Filesystem
(
$this
->
config
[
'template_dir'
]
)
;
$this
->
twig
=
new
Twig_Environment
(
$loader
,
array
(
'cache'
=>
$this
->
config
[
'cache_dir'
]
,
'debug'
=>
$this
->
config
[
'debug'
]
,
'auto_reload'
=>
$this
->
config
[
'auto_reload'
]
,
)
)
;
$CI
=
&
get_instance
(
)
;
$CI
->
load
->
helper
(
array
(
'url'
)
)
;
$this
->
twig
->
addFunction
(
new
Twig_SimpleFunction
(
'site_url'
,
'site_url'
)
)
;
$this
->
twig
->
addFunction
(
new
Twig_SimpleFunction
(
'base_url'
,
'base_url'
)
)
;
}
/**
* 给变量赋值
*
* @param string|array $var
* @param string $value
*/
public
function
assign
(
$var
,
$value
=
NULL
)
{
if
(
is_array
(
$var
)
)
{
foreach
(
$val
as
$key
=>
$val
)
{
$this
->
data
[
$key
]
=
$val
;
}
}
else
{
$this
->
data
[
$var
]
=
$value
;
}
}
/**
* 模版渲染
*
* @param string $template 模板名
* @param array $data 变量数组
* @param string $return true返回 false直接输出页面
* @return string
*/
public
function
render
(
$template
,
$data
=
array
(
)
,
$return
=
FALSE
)
{
$template
=
$this
->
twig
->
loadTemplate
(
$this
->
getTemplateName
(
$template
)
)
;
$data
=
array_merge
(
$this
->
data
,
$data
)
;
if
(
$return
===
TRUE
)
{
return
$template
->
render
(
$data
)
;
}
else
{
return
$template
->
display
(
$data
)
;
}
}
/**
* 获取模版名
*
* @param string $template
*/
public
function
getTemplateName
(
$template
)
{
$default_ext_len
=
strlen
(
$this
->
config
[
'extension'
]
)
;
if
(
substr
(
$template
,
-
$default_ext_len
)
!=
$this
->
config
[
'extension'
]
)
{
$template
.=
$this
->
config
[
'extension'
]
;
}
return
$template
;
}
/**
* 字符串渲染
*
* @param string $string 需要渲染的字符串
* @param array $data 变量数组
* @param string $return true返回 false直接输出页面
* @return string
*/
public
function
parse
(
$string
,
$data
=
array
(
)
,
$return
=
FALSE
)
{
$string
=
$this
->
twig
->
loadTemplate
(
$string
)
;
$data
=
array_merge
(
$this
->
data
,
$data
)
;
if
(
$return
===
TRUE
)
{
return
$string
->
render
(
$data
)
;
}
else
{
return
$string
->
display
(
$data
)
;
}
}
}
/* End of file Twig.php */
/* Location: ./application/libraries/Twig.php */
复制代码
模版的操作通常有一些配置的信息,这里通过config下的twig.php进行配置,通过CI load library的方式加载时,与类名同名的配置文件存在时,会自动以数组的方式将参数传入类的构造函数。
PHP
复制代码
<?php
// 默认扩展名
$config
[
'extension'
]
=
".tpl"
;
// 默认模版路劲
$config
[
'template_dir'
]
=
APPPATH
.
"views/"
;
// 缓存目录
$config
[
'cache_dir'
]
=
APPPATH
.
"cache/twig/"
;
// 是否开启调试模式
$config
[
'debug'
]
=
false
;
// 自动刷新
$config
[
'auto_reload'
]
=
true
;
/* End of file twig.php */
/* Location: ./application/config/twig.php */
复制代码
为了加载base_url site_url等函数到模版,类与CI产生了依赖,分离开可能更好,比如在serice中进行一次封装,增加一些自定义函数等,这样其他地方、其他系统也就很方便复用该类了。
版权说明:
本网站凡注明“广州松河 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
新昌有个设计网站叫酷什么
电影海报设计网站哪个好
单片机仿真毕业设计网站
法式别墅翻新设计网站大全
中老年服装设计网站推荐
河南农家乐设计网站有哪些
独栋办公楼内装修设计网站
扬州居住区景观设计网站
常州园林景观设计网站推荐
上海别墅景观设计网站大全
·上一条:
CodeIgniter执行流程
|
·下一条:
CodeIgniter辅助之helpers、libraries
同类资讯
Linuxsuse12系统下装MySQLsele11版本可以正常使用么_
myplsql闪退_数据库
如何查看linux系统安装了哪些服务_数据库
mysql根密码是什么_数据库
workbench中没有密码_数据库
mysql树型查询,mysql为什么使用b_数据库
mysql视图查询数据,你为什么选择做后台开发_数据库
查询mysql缓存开启,为什么MySQL在数据库较大的时候分页查询很慢_
mvcc解决什么问题_数据库
mysql查询效率设置,mysql多个索引怎么选择_数据库
在命令提示符中启动mysql数据库_数据库
安装mysql要不要勾选enable_数据库
mysql联合查询题库,mysql百万数据如何做到连表查询_数据库
mysql 并发查询上限,Mysql某个表有近千万数据_数据库
mysql 联合查询别名,是先学习设计模式还是spring_数据库
mysql怎么查看表是否存在_数据库
mysql查询优化条件,百万至千万级快速分页mysql性能到底能有多高_
mysql查询参数优化,如何通过优化sql语句提高数据库查询效率_数据库
caj阅读器怎么提取文档中的表格_数据库
如何在mysql中存储音乐和图片文件_数据库
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州松河信息科技有限公司 2005-2026 版权所有
粤ICP备16019765号
广州松河信息科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com