Laravel package 扩展包开发 一

扩展包开发

Posted by Gurudin on June 29, 2018

创建目录并初始化

mkdir -p packages/gurudin/rms avatar

  1. packages 扩展包存放目录
  2. gurudin 作者名称目录,一般是github用户名
  3. rms 扩展包具体名称

初始化 composer 配置,在 rms 目录下运行

composer init

按照指示填写信息即可,成功后在rms目录下会创建出composer.json文件,内容如图: avatar

创建逻辑代码存放目录

在rms目录下创建src文件夹 mkdir src

在laravel项目根目录下的composer.json去声明包的命名空间

avatar

新建一个Service Provider,将新创建文件从 app/Providers 移动到packages/gurudin/rms/src 目录下(注意修改 namespace)

php artisan make:provider RmsServicProvider

创建Controller 和 routes 文件

# RmsController.php 文件
namespace Gurudin\Rms\Controller;

use App\Http\Controllers\Controller;

class RmsController extends Controller
{

    public function index()
    {
        return view('rms::rms');
    }

}

# routes.php 文件
Route::get('rms', 'Gurudin\Rms\Controller\RmsController@index');

创建 view

src 目录下创建 views文件夹,创建文件rms.blade.php 内容随便写的什么先。

修改 RmsServicProvider 文件

public function boot()
{
    /** 添加路由地址 */
    $this->loadRoutesFrom(__DIR__ . '/routes.php');

    /** 添加视图位置 */
    $this->loadViewsFrom(__DIR__.'/views', 'rms');
}

添加 providers 到 config/app.php 的providers数组里面。

Gurudin\Rms\RmsServiceProvider::class,

最后根目录添加autoload依赖

composer dump-autoload

访问 http://localhost/rms 查看结果,不报错就是搭建成功。

最终目录结构

avatar