使用YII怎么实现分模块加载路由

  介绍

使用YII怎么实现分模块加载路由?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

项目结构如下

使用YII怎么实现分模块加载路由

新增了一个<代码>模块。php代码来管理模块的加载

调整之前<代码> web。php代码的模块加载配置如下

& # 39;模块# 39;,=祝辞,(   & # 39;才能设置# 39;,=祝辞,(   ,,,& # 39;类# 39;,=祝辞,& # 39;appcomponents \ \安装\模块# 39;模块,   ,,,   & # 39;才能shareorder& # 39;,=祝辞,(   ,,,& # 39;类# 39;,=祝辞,& # 39;appcomponents \ \ shareorder \模块# 39;模块,   ,,,   )

调整之后<代码> web.php 模块配置如下

<代码> & # 39;模块# 39;=比;要求(__DIR__) # 39;公司/modules.php& # 39;

<代码>模块。php代码里面配置如下

return  (   & # 39;才能设置# 39;,=祝辞,(   ,,,& # 39;类# 39;,=祝辞,& # 39;appcomponents \ \安装\模块# 39;模块,   ,,,   & # 39;才能shareorder& # 39;,=祝辞,(   ,,,& # 39;类# 39;,=祝辞,& # 39;appcomponents \ \ shareorder \模块# 39;模块,   ,,,   ];

然后修改<代码>规则。php代码

default 美元;=,(         ];   $ modules =, require  __DIR__ # 39;公司。/modules.php& # 39;;   $ roles =, [];   foreach  (modules 美元;as  $模块)   {   时间=美元才能class  new  ReflectionClass($模块(& # 39;类# 39;]);   时间=美元才能filePath 类→美元getFileName ();   时间=美元才能filePath  str_replace(& # 39;模块# 39;& # 39;规则# 39;,filePath美元);   如果才能(file_exists (filePath美元))   {才能   ,,,role 美元;=,require  filePath美元;   ,,,roles 美元;=,array_merge(角色、角色美元);   ,,}   }   return  array_merge(角色,默认美元);。

利用反射找到每个模块的真实路径,然后加载当前模块下的<代码>规则。php代码文件

每个模块的目录结构

使用YII怎么实现分模块加载路由

其中<代码> Modules.php> 规则。php代码为当前模块的下的路由配置

使用YII怎么实现分模块加载路由