laravel 实现 模块式开发

项目需求:

  对于中大型和后期考虑扩展和维护的项目,常用的MVC模式肯定不行,于是觉得采用HMVC模式开发有利于后期维护与扩展。

  但LARAVEL默认的目录结构式 :

/app/

  /controllers/

     AppController.php

     App2Controller.php

 /models/

     Article.php

 /views/

     layout.blade.php


--------------------------

  现需要采用模块式开发,即每一个模块为一个子目录,子目录下有自己的MVC

/app/

  /modules/

     /article/

        /controllers/

        /models/

        /views/

    /video/

        /controllers/

        /models/

        /views/


于是通过在鸟语FORUM里查了好久,发现现在活跃的方式是 采用一个叫 ModuleManage 的 package

GIT地址:

https://github.com/LevareCMS/modulemanager


---------------------------------------------

下载 采用 composer 方式

  在  composer.json

   

"require": {
		"laravel/framework": "4.0.*",
		"levare/modules": "dev-master"
	},

  然后 执行 composer update (如果是第一次安装,则执行  composer install)

  通过漫长的等待后,会多出一个package

     /vendor/levare

  该目录下的文件 可以修改的地方有一处:

     /levare/modules/src/Levare/templates/module.json  此文件的用途是,在你创建的每个 模块下自动以该模版创建module.json

  安装完成,打开package里面的README.md 最下面有install 的过程,这里不过多阐述。

  module.json 的格式如下

  

{
	"name": "",
	"author": "",
	"license": "",
	"description": "",
	"autoload": [
		"routes.php"
	],
	"global": [
		"controllers",
		"views",
		"models",
		"controllers/admin"
	]
}


   注意元素的引号要用双引号、小弟之前习惯用单引号,结果没有通过json_decode解析成数组。

  autoload  里面添加的文件,会自动加载该文件

  global 里面添加的为目录名,会自动加载这些目录名下面的文件

  小弟在 autoload添加的 routes.php文件里,写的是 该模块的 路由

  这样就可以不用在主routes.php里面写不知道的模块路由了!

--------------

内容有些凌乱,不过大体就是这样了,如果还有问题,就进 package包里 用dd函数 自己慢慢调试, 这个package的代码不是很复杂,功能其实就是自动加载文件 注册namespace。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值