10
回答
yii默认项目中 protected目录下component放置的到底是什么文件?
科大讯飞通用文字识别100000次/天免费使用。立即申请   

 

下载的yii包中demo里面blog示例中

protected目录下面有个components文件夹看文档介绍说是 "包含可重用的用户组件"

这个到底是什么意思?

谢谢了

 

举报
voov
发帖于6年前 10回/5K+阅
共有10个答案 最后回答: 5年前

引用来自“P霹雳”的答案

我经常把用户登录处理文件,或者format文件放到这个文件夹下
这个真是不好理解
--- 共有 1 条评论 ---
时Stone慢慢就理解了 6年前 回复
全站通用但稍复杂的东西比如整合的可视化编辑器、bootstrap一般放到扩展中;全站范围内可复用的稍简单的一般比如插件、用户登录、图片转换一般放到components中;模块中可复用的那就放到模块的components中

引用来自“wangpro”的答案

全站通用但稍复杂的东西比如整合的可视化编辑器、bootstrap一般放到扩展中;全站范围内可复用的稍简单的一般比如插件、用户登录、图片转换一般放到components中;模块中可复用的那就放到模块的components中

嗯,谢谢

用yii自带的工具建立的那个项目中,控制器扩展自controller,这个controller存放在commonents目录下,有点不明白,控制器还要自己建立个,单独放到commonents目录下吗?别的框架不是直接extends就可以了吗?

多谢回复

controller 是继承框架里的CController,不直接使用CController是为了日后可以在子类中扩展自己的东西,这取决于你的应用,比如后台或手机应用你可写 新建AdminController MobileController,放到components目录中,

引用来自“wangpro”的答案

controller 是继承框架里的CController,不直接使用CController是为了日后可以在子类中扩展自己的东西,这取决于你的应用,比如后台或手机应用你可写 新建AdminController MobileController,放到components目录中,
多谢,这下清晰多了

翻译也要看译者对YII的了解,以及编程功底,所以你不要太相信他们的翻译结果。

components直接翻译为组件,一般都是放MVC三层的类,然后在项目中直接使用,或继承这些类,我取名为“中间层”,例如YII原生的类: CController、CWebUser、CActiveRecord,这三个算高频率使用的class,如果你在项目中具体类中直接继承,是不举荐的,主要是因为怕影响日后的扩展和维护。假设项目发展到一定阶段,有新的需求,需要对所有表中的text字段进行html标签过滤,你想想如果Model类没有统一的父类,该如何是好,你可能说我继承了CActiveRecord,可以直接改啊,去死,直接改框架的东西?具体原因自己想,我就不列举了。主要还是经验,用过了,就知道了。

引用来自“Susanno”的答案

翻译也要看译者对YII的了解,以及编程功底,所以你不要太相信他们的翻译结果。

components直接翻译为组件,一般都是放MVC三层的类,然后在项目中直接使用,或继承这些类,我取名为“中间层”,例如YII原生的类: CController、CWebUser、CActiveRecord,这三个算高频率使用的class,如果你在项目中具体类中直接继承,是不举荐的,主要是因为怕影响日后的扩展和维护。假设项目发展到一定阶段,有新的需求,需要对所有表中的text字段进行html标签过滤,你想想如果Model类没有统一的父类,该如何是好,你可能说我继承了CActiveRecord,可以直接改啊,去死,直接改框架的东西?具体原因自己想,我就不列举了。主要还是经验,用过了,就知道了。

好像有点明白

引用来自“voov”的答案

引用来自“wangpro”的答案

全站通用但稍复杂的东西比如整合的可视化编辑器、bootstrap一般放到扩展中;全站范围内可复用的稍简单的一般比如插件、用户登录、图片转换一般放到components中;模块中可复用的那就放到模块的components中

嗯,谢谢

用yii自带的工具建立的那个项目中,控制器扩展自controller,这个controller存放在commonents目录下,有点不明白,控制器还要自己建立个,单独放到commonents目录下吗?别的框架不是直接extends就可以了吗?

多谢回复

每次都extends ccontroller可能会有很多冗余,可以把重用的action代码放在controller 同理, 你也可以建一个extends cactiverecord的activerecord来放一些可重用的代码
顶部