php yii2模块,Yii2模块自定义模块目录

请教一下各位,yii2的模块创建后(比如如下的forum模块),官方的标准是如下目录结构。

请问可以在该模块下手动创建一个目录么?比如common目录,如果可以的话调用该目录里的类文件与Yii1.1中的components一样么?

现在想把该模块通用的类放到该目录,就像YII1.1中的components目录一样,多谢了

forum/

Module.php 模块类文件

controllers/ 包含控制器类文件

DefaultController.php default 控制器类文件

models/ 包含模型类文件

views/ 包含控制器视图文件和布局文件

layouts/ 包含布局文件

default/ 包含DefaultController控制器视图文件

index.php index视图文件

回复内容:

请教一下各位,yii2的模块创建后(比如如下的forum模块),官方的标准是如下目录结构。

请问可以在该模块下手动创建一个目录么?比如common目录,如果可以的话调用该目录里的类文件与Yii1.1中的components一样么?

现在想把该模块通用的类放到该目录,就像YII1.1中的components目录一样,多谢了

forum/

Module.php 模块类文件

controllers/ 包含控制器类文件

DefaultController.php default 控制器类文件

models/ 包含模型类文件

views/ 包含控制器视图文件和布局文件

layouts/ 包含布局文件

default/ 包含DefaultController控制器视图文件

index.php index视图文件

没什么经验,不过从你列出的默认结构来看直接创建目录应该是无法自动加载的,需要添加一些设置,类似 namespace => 'Common', path => 'forum/common',具体怎么做参考一下models或者controllers的配置就行了。

这种相当于加组件类,主要是把自己添加的类路径和参数, 在config目录中的main.php进行配置,这样的就可以自动加载,可以仿照db配置connection时的样子 :

(主要应该是自定义class的路径 例如可以是forumcommonutil。对应util类的命名空间可以是namespace forumcommon)

[

'components' => [

// 使用类名注册 "cache" 组件

'cache' => 'yii\caching\ApcCache',

// 使用配置数组注册 "db" 组件

'db' => [

'class' => 'yii\db\Connection',

'dsn' => 'mysql:host=localhost;dbname=demo',

'username' => 'root',

'password' => '',

],

// 使用函数注册"search" 组件

'search' => function () {

return new app\components\SolrService;

},

],

]

多谢各位。

发现可以通过命名空间解决这一个问题。

比如新建一个test目录,然后统一为该目录下所有的类文件设置一个命名空间。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值