1. 创建包
1
php artisan workbench vendor/package --resources
注:  vendor:开发商名   package:包名
2.修改下包里composer.json中的authors
1
2
3
4
5
6
"authors": [
    {
        "name""cicl",
        "email""test@126.com"
    }
]

3. 为创建的包注册ServiceProvider
在项目根目录执行 php artisan dump-autoload
在app/config/app.php文件里的provides数组中添加该包,将Vendor\Package\PackageServiceProvider添加到providers数组.
为了方便我们的使用,我们在app/config/app.php的aliases中增加一个别名: 'Package' => 'Vendor\Package\Facades\Notification',
启动开发服务器: php artisan serve ,如果成功启动,如显示:Laravel development server started on http://localhost:8000,则扩展包的基础搭建就成功了。

基本的扩展包结构:
        /src/Vendor/PackagePackageServiceProvider.php/config/lang/migrations/views/tests/public

4、为本包添加独立路由文件,只需在PackageServiceProvider中的boot函数中添加如下代码,并在包的根目录创建routes.php文件

1
2
3
4
public function boot(){   
    $this->package('vendor/package');   
    include __DIR__.'/../../routes.php';
}

路由文件如下所示:

1
Route::get('test',  function(){    return "this is test";});

现在,在浏览器里输入地址如:http://localhost:8000/test,就会输出“this is test”。

5.接下来尝试使用Controller
新建路由如下:

1
Route::get('testtwo',array('as' => 'testtwo','uses' => 'Vendor\Package\Controllers\PackageController@getTest'));

6、在controllers 中新建RegistrationController.php文件,代码如下:
1
2
3
4
5
6
7
8
9
10
<?php
namespace Ccl\Lenon\Controllers;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\View;
Class LenonController extends Controller {
     public function getTest() {
         return "控制器测试";
     }
}

尝试打开页面,提示找不到控制器,Laravel默认是不自动查找任何目录的,需要开发者自己指定文件的存放目录,不过它也给出了建议路径,比如在使用artisan workbench的时候是不是生成了src/controllers目录呢,Ok,我们添加自动加载路径即可。
7、在包的根目录的composer.json的autoload下classmap字段增加"src/controllers",如:
1
2
3
4
"classmap": [
       "src/migrations",
       "src/controllers"
],

并在项目根目录运行 php artisan dump-autoload,刷新页面就好了。

8、接下来我们要使用views文件!按照我们理解我们只需要修改controller中代码,如下:

1
2
3
4
public function getRegister()   
    return View::make('test');
}

在包src/views/ 下创建 test.blade.php文件,并在文件中写入相关页面代码,例: <h1>这是测试视图的文件</h1>

刷新页面,发现并没有成功,在Laravel中,是不会自动索引包中的视图文件的,所以我们还需要做一点点工作!

9、在载入视图的时候指定他去包中寻找视图文件即可,修改controller中代码如下:

1
2
3
4
public function getRegister()   
{
    return View::make('package::test');   
}

再次刷新页面,我们期待的页面出现了,

public迁移     
1
php artisan asset:publish --bench="vendor/package"
创建数据库迁移
1
php artisan migrate:make create_users_table --bench="vendor/package"

执行数据库迁移

1
php artisan migrate --bench="vendor/package"

转载于:https://www.cnblogs.com/bainiu/p/7681176.html

laravel扩展包开发步骤总结相关推荐

  1. 如何开发、本地测试、发布 Laravel 扩展包?Class ‘Angkee\Admin\AdminServiceProvider‘ not found

    在按照文档实践当中遇到错误.我修正一下. Class 'Angkee\Admin\AdminServiceProvider' not found 应该是这样的 "Angkee\Admin\& ...

  2. 简单几步写一个laravel扩展包

    为什么80%的码农都做不了架构师?>>>    laravel使用composer来管理扩展包,理解composer和laravel的开发模式,可以通过简单的几个步骤,快速写出一个l ...

  3. 下载量最高 100 个 Laravel 扩展包推荐

    本文经授权转自 PHPHub 社区,后续更新将以 PHPHub 帖子内容 和 GitHub 内容 为准. 说明 Laravel 另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的, ...

  4. 下载量最高的 100 个 Laravel 扩展包推荐

    Laravel 另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态. 本文对 Packagist 上打了 Laravel 标签 的扩展包进行整理,截止到现在 2 ...

  5. 【转】下载量最高的 100 个 Laravel 扩展包推荐

    说明 Laravel 另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态. 本文对 Packagist 上打了 Laravel 标签 的扩展包进行整理,截止到现 ...

  6. STM32Cube扩展包开发指南

    本文翻译于ST官网文档,<Development guidelines for STM32Cube Expansion Packages> 文章目录 介绍 1. 总体信息 2. 参考和首字 ...

  7. laravel框架应用和composer扩展包开发

    laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,laravel框架思想前卫,跟随时代潮 ...

  8. Laravel扩展包下载excel

    composer require maatwebsite/excel 默认安装最新得版本,下面我使用得是2.1版本的 在config/app.php中注册服务提供者到providers数组: Maat ...

  9. laravel 扩展包

    1 验证错误中文提示 composer require "overtrue/laravel-lang:~3.0"   在app.php中修改:'locale' => 'zh- ...

最新文章

  1. 解决push的时候有时候会卡一下的问题
  2. fwink函数c语言,wink: Wink is oscstudio library
  3. linux组类型,LINUX用户以及用户组
  4. 如何实现一个符合规范的Promise
  5. c语言综合编程,C语言编程入门——综合练习(一)
  6. 爱立信面试,面试官给我出的 C 算法问题
  7. 仿饿了么微外卖系统php,【外卖小程序】仿美团外卖源码 版本号v1.7 – 亲测可用 饿了么小程序 外卖小程序...
  8. android6.0彩蛋小游戏,安卓系统暗藏彩蛋?隐藏小游戏让你玩到停不下来
  9. VS Code 安装 VSIX 插件
  10. 【视频音效素材】火遍全网的2000款热门短视频搞笑剪辑素材+经典音效包素材来了
  11. mysql 怎么加读锁_MYSQL—加写锁,加读锁,解锁
  12. Origin 数据渐变色
  13. 计算机网络英文题库(含答案) Chapter 1 Computer Networks and the Internet
  14. 我私藏的那些实用的终端命令行工具
  15. 成都众恒微拓科技:怎么降低退款率
  16. 阿里云虚拟主机共享和独享区别对比
  17. Part1 コンビニエンス・ストア編(1)---基本的な業務を知る
  18. 四川师范大学区域规划(3-区域发展的经济社会背景分析)90分以上版本
  19. 微计算机原理与接口,微计算机原理与接口技术概要
  20. 单片机c语言项目式教程期末试卷,单片机试卷10《单片机C语言项目式教程》.doc...

热门文章

  1. 数码管和573锁存器的细节问题
  2. linux系统内核参数配置优化,Linux服务器内核参数优化
  3. 阿联酋esma认证_阿联酋无人驾驶汽车预计2021年上路
  4. python删除第一行_Python删除文件第一行
  5. 鸿蒙后的时期有什么,鸿蒙系统什么时候上市 华为鸿蒙系统有多厉害?
  6. C# Lambda 和 匿名函数的GC总结
  7. 数据结构--Dijkstra算法最清楚的讲解
  8. 多项式曲线拟合最小二乘法
  9. 李宏毅机器学习课程7~~~反向传播
  10. 高性能Numpy/Scipy加速:使用Intel MKL和Intel Compilers或OpenBLAS(待续)