HMVC开发部署
一个简单的HMVC开发部署,请大湿指教仅供参看勿喷!
HMVC开发主要使用ServiceProvider实现;
第一步:在APP目录下创建一个modules文件夹
第二步:新建一个app/modules/ServiceProvider.php
第三步:打开composer.json找到autoload在配置中添加app/modules
第四步:创建2个模块article、shop目录结构为MVC,模块目录必须要有一个ServiceProvider.php
来初始化模块;/app/modules/article/ServiceProvider.php
新增一个路由文件/app/modules/article/routes.php
第五步:修改/app/config/app.php
项目根目录执行下
通过浏览器访问http://localhost/admin/article就OK一个简单的HMVC部署就实现。
HMVC开发主要使用ServiceProvider实现;
第一步:在APP目录下创建一个modules文件夹
第二步:新建一个app/modules/ServiceProvider.php
<?php
namespace App\Modules;
abstract class ServiceProvider extends \Illuminate\Support\ServiceProvider {
public function boot()
{
if ($module = $this->getModule(func_get_args()))
{
$this->package('app/' . $module, $module, app_path() . '/modules/' . $module);
}
}
public function register()
{
if ($module = $this->getModule(func_get_args()))
{
$this->app['config']->package('app/' . $module, app_path() . '/modules/' . $module . '/config');
// Add routes
$routes = app_path() . '/modules/' . $module . '/routes.php';
if (file_exists($routes)) require $routes;
}
}
public function getModule($args)
{
$module = (isset($args[0]) and is_string($args[0])) ? $args[0] : null;
return $module;
}
}
第三步:打开composer.json找到autoload在配置中添加app/modules
"autoload": {
"classmap": [
......
"app/modules"
]
},
第四步:创建2个模块article、shop目录结构为MVC,模块目录必须要有一个ServiceProvider.php
来初始化模块;/app/modules/article/ServiceProvider.php
<?php
namespace App\Modules\Article;
class ServiceProvider extends \App\Modules\ServiceProvider {
public function register()
{
parent::register('article');
}
public function boot()
{
parent::boot('article');
}
}
新增一个路由文件/app/modules/article/routes.php
<?php
Route::get('admin/article', function() {
return '<h1>Hello Word!</h1>
'; });
第五步:修改/app/config/app.php
'providers' => array(
........
'App\Modules\Article\ServiceProvider',
'App\Modules\Shop\ServiceProvider',
),
项目根目录执行下
composer dump-autoload
通过浏览器访问http://localhost/admin/article就OK一个简单的HMVC部署就实现。