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": "745289603@qq.com"
}
],
"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": "745289603@qq.com"
}
],
"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
完成