laravel5.6扩展包开发

1.安装laravel5.6

laravel new larapackage

2.创建packages/marcello/laravelalert/src目录

3.进入package/marcello/laravelalert文件夹并初始化composer

cd packeages/marcello/laravelalert
composer init


  Welcome to the Composer config generator



This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [warcello/laravelalert]: marcello/laravelalert
Description []: write a package test for laravel
Author [汐杰 <745289603@qq.com>, n to skip]:
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: MIT

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

{
    "name": "marcello/laravelalert",
    "description": "write a package test for laravel",
    "type": "project",
    "license": "MIT",
    "authors": [
        {
            "name": "汐杰",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}

Do you confirm generation [yes]? yes

4.编辑根目录下的composer.json,加入

"repositories": [
        {
            "type": "path",
            "url": "packages/marcello/laravelalert",
            "options": {
                "symlink": true
            }
        }
    ],
    "require": {
        ...
        "marcello/laravelalert":"dev-master"

    },

5.在根目录执行composer update

不能再当前目录执行composer update

6.创建服务提供者

执行php artisan make:provider FlashServiceProvider 将生成的文件移动到package/marcello/laravelalert/src下,将命名空间修改成 namespace Marcello\Laravelalert;

7.修改laravelalert下的composer.json文件

在require下添加autoload和extra
{
    "name": "marcello/laravelalert",
    "description": "write a package test for laravel",
    "type": "project",
    "license": "MIT",
    "authors": [
        {
            "name": "汐杰",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {},

    "autoload":{
        "psr-4":{
            "Marcello\\Laravelalert\\":"src/"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "Marcello\\Laravelalert\\FlashServiceProvider"
            ]
        }
    }

}

8.创建FlashController.php

<?php
namespace Marcello\Laravelalert;

use App\Http\Controllers\Controller;

class FlashController extends Controller
{
    public function index()
    {
        dd(111);
    }
}

9.在src下创建routes/web.php

<?php
Route::get('/test','marcello\laravelalert\FlashController@index');

10.在FlashServiceProvider中注册路由和控制器

<?php

namespace Marcello\Laravelalert;

use Illuminate\Support\ServiceProvider;

class FlashServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        include __DIR__.'/routes/web.php';
        $this->app->make('Marcello\Laravelalert\FlashController');
    }
}

11.打开浏览器运行localhost:8000/test

完成

猜你喜欢

转载自blog.csdn.net/shao508/article/details/80076638