简单几步写一个laravel扩展包

laravel使用composer来管理扩展包,理解composer和laravel的开发模式,可以通过简单的几个步骤,快速写出一个laravel扩展包。

全新的laravel5.4环境安装
composer create-project laravel/laravel --prefer-dist .
创建文件夹及整理目录结构
  1. 在项目根目录下创建一个packages,所有的扩展文件都放在此目录下。
  2. 进入到packages创建我们的目录结构。

扩展包的格式为:[vendor name]/[package name],

mkdir -p onlyus/helloworld/src

目录结构图

为扩展创建composer.json文件

每个扩展都需要有一个composer.json文件,进入到onlyus/helloworld文件夹下,执行:

composer init

最终结果如下所示:

{
    "name": "onlyus/helloworld",
    "description": "demo-package helloworld",
    "license": "MIT",
    "authors": [
        {
            "name": "zhoubo",
            "email": "congminghaoxue@foxmail.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}
加载扩展

进到项目根目录下,修改项目的composer.json文件:

    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "Onlyus\\Helloworld\\": "packages/onlyus/helloworld/src"
        }
    },

然后,执行:

composer dump-autoload

创建ServiceProvider

Service Provider是一个类,它将包含关于包的主要信息:使用什么控制器,用什么Routes文件或视图加载等,可以看它作为一组规则的包。

php artisan make:provider HelloworldServiceProvider

然后移动app/Providers/HelloworldServiceProvider.php到packages/onlyus/helloworld/src下,并修改相应的namespace,并添加注册新的Service Provider到config/app.php文件中。

创建Controller和routes

分别创建文件packages/onlyus/helloworld/src/HelloworldController.php和packages/onlyus/helloworld/src/routes.php

namespace Onlyus\Helloworld;

use App\Http\Controllers\Controller;

class HelloworldController extends Controller
{

    public function index()
    {
        reutnr 'hello world';
    }

}
# routes.php内容
Route::get('helloworld',Onlyus\Helloworld@index);
创建view文件

创建src/views文件夹,复制resource/views/welcome.blade.php到packages/onlyus/helloworld/src/views/helloworld.blade.php

在Service Provider注册view文件

public function boot()
{
    $this->loadViewsFrom(__DIR__.'/views', 'helloworld');
}

修改controller中index函数

public function index($params = NULL)
{
    return view('helloworld::helloworld', ['param'=> ($params?:'hello world')]);
}

最终结果

代码

转载于:https://my.oschina.net/zho/blog/843212

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值