参考文章:https://laravel-china.org/articles/1714
以下封装的包的demo在:https://github.com/Lidisam/webUpload-for-laravel
接下来讲解如何将webupload封装成一个laravel的composer包 
这里针对的版本是laravel 5.2
①首先打开laravel目录,然后再app的同级目录下创建 packages/lisam/webupload/src
注:src目录存储开发包的代码
②修改laravel项目根目录的composer.json如下:
"autoload": {"classmap": [ "database" ],"psr-4": {"App\\": "app/","Lisam\\Webupload\\": "packages/lisam/webupload/src/" }
},
注:修改根目录的composer.json需要重新加载,命令为:composer dump-autoload
③在包的src的同级目录添加composer.json,并修改代码如下:
{"name": "lisam/webupload-for-laravel","description": "webupload for laravel5","authors": [{"name": "lisam","email": "364362035@qq.com"}],"require": {}
}
④创建服务提供者WebuploadServiceProvider
php artisan make:provider WebuploadServiceProvider
并将其从app/Providers/WebuploadServiceProvider.php移动到packages/lisam/webupload/src下,然后将WebuploadServiceProvider注册到config/app.php的providers下
'providers' => [/* * Laravel Framework Service Providers... */....../* * Application Service Providers... */......                  Lisam\Webupload\WebuploadServiceProvider::class,
],
⑤新建配置文件 packages/lisam/webupload/src/config/webupload.php 如下
<?phpreturn ['options' => []
];
⑥新建功能函数文件 packages/lisam/webupload/src/Webupload.php  (包含相干的资源文件js、css)
<?php namespace Lisam\Webupload;class Webupload
{/*** constructor.*/public function __construct(){}public function render(){
//        return view('Toastr::toastr', compact('javascript'));}/*** css资源文件*/public function css(){echo '<link rel="stylesheet" type="text/css" href="/packages/webUpload/css/webuploader.css" />' . PHP_EOL;echo '<link rel="stylesheet" type="text/css" href="/packages/webUpload/css/style.css"/>' . PHP_EOL;}/*** js资源文件*/public function js(){echo '<script type="text/javascript" src="/packages/webUpload/js/jquery.js"></script>' . PHP_EOL;echo '<script type="text/javascript" src="/packages/webUpload/js/webuploader.js"></script>' . PHP_EOL;echo '<script type="text/javascript" src="/packages/webUpload/js/upload.js"></script>' . PHP_EOL;}/*** 主体内容*/public function content(){echo '<div id="wrapper">' .'<div id="container">' .'<div id="uploader">' .'<div class="queueList">' .'<div id="dndArea" class="placeholder">' .'<div id="filePicker"></div>' .'<p>或将照片拖到这里,单次最多可选300张</p>' .'</div>' .'</div>' .'<div class="statusBar" style="display:none;">' .'<div class="progress">' .'<span class="text">0%</span>' .'<span class="percentage"></span>' .'</div>' .'<div class="info"></div>' .'<div class="btns">' .'<div id="filePicker2"></div>' .'<div class="uploadBtn">开始上传</div>' .'</div>' .'</div>' .'</div>' .'</div>' .'</div>';}
}
⑦注册门面Facade,新建packages/lisam/webupload/src/Facades/Webupload.php   
<?php namespace Lisam\Webupload\Facades;use Illuminate\Support\Facades\Facade;class Webupload extends Facade
{protected static function getFacadeAccessor(){return 'webupload';}
}
⑧修改providers
<?php namespace Lisam\Webupload;use Illuminate\Support\ServiceProvider;class WebuploadServiceProvider extends ServiceProvider
{/*** Bootstrap the application services.** @return void*/public function boot(){$this->publishes([__DIR__ . '/config/webupload.php' => config_path('webupload.php'),]);}/*** Register the application services.** @return void*/public function register(){$this->app['webupload'] = $this->app->share(function ($app) {return new Webupload();});}/*** Get the services provided by the provider.** @return array*/public function provides(){return ['webupload'];}
}
⑨修改config/app.php文件如下:
'aliases' => ['WebUpload' => Lisam\Webupload\Facades\Webupload::class,
],
⑩然后随便找一个控制器指向 根目录文件,并修改视图文件如下:
{{--设置token验证--}}
<meta name="_token" content="{{ csrf_token() }}"/>
{{--设置当前保存url--}}
<meta name="_url" content="/admin/good/webUpload?goods_id={{ $id }}"/>
{!! WebUpload::css() !!}
{!! WebUpload::content() !!}
{!! WebUpload::js() !!}
效果如下:
最终目录结构如下:

Laravel composer包-webUpload制作过程相关推荐

  1. android系统system镜像解包打包制作过程

    ** android系统system镜像解包打包制作过程 首先确认你的system是哪种类型镜像:yaffs2 ? 还是sparse? 这两种镜像使用的解包工具也不一样,下面以sparse类型镜像描述 ...

  2. rpm包与deb包的制作过程

    制作RPM包 第一步: BUILD目录:tar.gz包的解压后存放的位置,并在此目录进行编译安装 SPECS目录:存放SPEC文件(important) RPMS目录:存放制作好的rpm包 SOURC ...

  3. 自己本地搭建svn仓库_「PHP编程」如何制作自己的Composer包?

    PHP开发免不了要使用Composer,使用Composer有着明显的好处.一是可以很好的解决第三方包的相互依赖,二是可以方便进行代码的重用. 那如何制作自己的Composer包呢? 制作Compos ...

  4. DsoFramer.ocx制作CAB包详细图解过程

    本文DOC文档 相关资源下载地址: http://download.csdn.net/source/2812514 首先我们将signcode.rar压缩到 C:/signcode 一."数 ...

  5. 开发composer包

    一.初始化(生成composer.json文件) composer init #输入你要创建的composer包项目命名空间 Package name (<vendor>/<name ...

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

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

  7. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  8. fpm定制化RPM包之nginx rpm包的制作

    fpm定制化RPM包之nginx rpm包的制作 1.安装ruby模块 # yum -y install ruby rubygems ruby-devel 2.添加阿里云的Rubygems仓库,国外资 ...

  9. 动手开发自己的第一个 composer 包

    原文:http://blog.jayxhj.com/2016/05/basic-composer-package-development/ composer 是 PHP 的依赖管理工具,本篇文章就来说 ...

最新文章

  1. IBatis.Net学习笔记系列文章
  2. 简单思维dp-- Gym - 102392B
  3. hmailserver mysql密码_第二步:点晴MIS系统Email模块hMailServer数据库连接配置指引
  4. Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法
  5. 分布式计算solutions
  6. middleware什么意思_middleware
  7. 8月30日学习内容整理:命名空间,作用域,函数名本质,闭包
  8. 【ACL2019】轻松了解张岳实验室的六篇paper
  9. 【三维路径规划】基于matlab RRT_Star算法三维路径规划【含Matlab源码 1571期】
  10. “实时SPC软件”的“实时”性指什么?一探究竟!
  11. html显示vbs变量,VBS 读取 对象某属性已连接的变量的变量名
  12. 关于SVN无法cleanup的问题
  13. 离了加多宝 第三季好声音将“变味”
  14. 模拟直播间评论的动画
  15. Vue Vant点赞效果
  16. 串口传输速率为9600bps意味着每分钟最多可传送多少个ASCII码字符
  17. c# 语法记录:析构函数
  18. 实验室云平台架构学习笔记
  19. 第八届省赛——D.引水工程)
  20. 利用html5实现类似微信的手机摇一摇功能-计算摇动次数

热门文章

  1. 【历史上的今天】4 月 21 日:微处理器先驱诞生;Winamp 发布;COPPA 正式生效
  2. PHP即时输出结果到浏览器
  3. 蜗牛一般的UAP开发(二)元数据
  4. 分区(服务配置不支持动态动态磁盘,群集上不支持 或 该磁盘已经包含最大分区数)方法
  5. 财务共享时代企业数智化应用能帮我们做些什么?
  6. python 音频处理软件_python处理音频文件(mp3)
  7. multisim仿真 电流控制的电压源电路连接方法
  8. IT项目的六西格玛管理之法
  9. 互联网家装平台齐屹科技拟与好莱客交叉投资 互持对方股份
  10. 我计算机桌面的word图标改变了咋办,桌面上word图标异常的处理方法