设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
在CI第三方类中的一个问题
返回列表
查看:
2901
|
回复:
1
[HELP]
在CI第三方类中的一个问题
[复制链接]
zionwang
zionwang
当前离线
积分
566
IP卡
狗仔卡
发表于 2012-4-4 21:36:34
|
显示全部楼层
|
阅读模式
在CI第三方类中或者helper 中,要使用CI 的配置 或者加载一些CI的东西,如配置与语言包
是不是一定要 $this->ci =& get_instance(); 来引入,
这样做耗资源吗?一定要这样做吗?还有其他办法吗 ,直接$this->load->model 为什么不行?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
actionbi
actionbi
当前离线
积分
1752
IP卡
狗仔卡
发表于 2012-4-5 04:43:38
|
显示全部楼层
本帖最后由 actionbi 于 2012-4-5 05:23 编辑
1、调用get_instance()这么做几乎不消耗资源,因为每次返回的都是一个引用
CI的CI_Controller类用的是单例模式。不管你怎么调用 & get_instance(),系统只有一个实例,不会重复实例化。
2、你的第三方类库或者helper,本来就是通过Controller使用的。
helper中调用ci的的信息,要用get_instance();
因为Controller在实例化时候已经加载了所有核心类库。你想获取啥都能获取到。
3、第三方的类库就没必要了。CI的core文件夹下面的所有核心文件之间也存在相互调用,使用的是 &load_class 例如:
PHP
复制代码
function
__construct
(
)
{
$this
->
config
=&
load_class
(
'Config'
,
'core'
)
;
$this
->
uri
=&
load_class
(
'URI'
,
'core'
)
;
log_message
(
'debug'
,
"Router Class Initialized"
)
;
}
复制代码
4、$this->load->model() ????这个是真的不知道你想表达啥意思。
5、建议你看看源码,看了之后你就知道CI是怎么工作的了。对加深学习很有帮助。
PS:本人还没有开发过第三方的类库和helper,所以只是主观猜测,求指正。
评分
参与人数
1
威望
+1
收起
理由
kissgxd
+ 1
很给力!虽然不知道谁的都对不,但是很受益.
查看全部评分
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页