您好,登录后才能下订单哦!
yii2扩展和自定义函数组件及模块是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
自定义辅助函数
 入口文件加载
 目录下创建一个helpers目录下创建functions.php 文件
 <?php
if (! function_exists('hello')) {
     function hello(){
         echo 'hello word';
     }
 }
修改项目入口文件index.php
新增如下代码:
require(__DIR__ . '/../helpers/functions.php');
composer中设置加载(推荐)
在 composer.json 文件里面添加如下代码:
"autoload": {
     "files": [  
         "common/components/functions.php"
     ]
 },
 添加完之后,在common/components下添加文件functions.php,项目根目录下执行 composer update
 ok!
自定义component 组件
在app\components下新建NewComponent.php
 namespace app\components;  
 use Yii;  
 use yii\base\Component;  
 use yii\base\InvalidConfigException;  
    
 class NewComponent extends Component
 {  
  public function hello()  
  {  
   echo "hello world";  
  }  
    
 }  
  main.php配置文件中
 'components' => [  
    
          'testcomponent' => [  
    
             'class' => 'app\components\MyComponent',  
    
             ],  
 ]  
下面就可以愉快的使用 组件了是不是很简单 !
Yii::$app->testcomponent->hello();
 自定义Modules 模块
 以下参考yii2.0 权威指南
新建一个如下目录
 forum/
     Module.php                   模块类文件
     controllers/                 包含控制器类文件
         DefaultController.php    default 控制器类文件
     models/                      包含模型类文件
     views/                       包含控制器视图文件和布局文件
         layouts/                 包含布局文件
         default/                 包含DefaultController控制器视图文件
             index.php            index视图文件
Module.php 代码如下
namespace app\modules\forum;
class Module extends \yii\base\Module
 {
     public function init()
     {
         parent::init();
         $this->params['foo'] = 'bar';
         // ...  其他初始化代码 ...
     }
 }
如果 init() 方法包含很多初始化模块属性代码, 可将他们保存在配置 并在init()中使用以下代码加载:
 public function init()
 {
     parent::init();
     // 从config.php加载配置来初始化模块
     \Yii::configure($this, require(__DIR__ . '/config.php'));
 }
 config.php配置文件可能包含以下内容,类似应用主体配置.
 <?php
 return [
     'components' => [
         // list of component configurations
     ],
     'params' => [
         // list of parameters
     ],
 ];
使用模块
 要在应用中使用模块,只需要将模块加入到应用主体配置的yii\base\Application::modules属性的列表中, 如下代码的应用主体配置 使用 forum 模块:
 [
     'modules' => [
         'forum' => [
             'class' => 'app\modules\forum\Module',
             // ... 模块其他配置 ...
         ],
     ],
 ]
访问路由
 forum/post/index 代表模块中 post 控制器的 index 操作
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。