Laravel Packages 开发
Packages是向Laravel中添加功能最重要的途径。composer.json中require的都是包。关于包的详细说明请查看 API . 下面一起创建一个简单的Package :
1. 环境配置
我们以Artisan的workbench命令来创建一个Package ,首先要配置 app/confg/workbench.php
<?php
return array(
'name' => 'brudeke',
'email' => 'xxxxxxxx@163.com',
);
2. 创建Package
其中vendor是厂商名称,用于区别相同名称的包;package是要创建的包名;
php artisan workbench vendor/package --resources
执行以上命令后会在根目录出现workbench目录,其中workbench/vendor/package/src/Vendor/Package目录下会自动生成PackageServiceProvider.php(以下称此文件为引导类),该文件相当于包的引导类。
3. 在包中添加功能类
在这里我们在包中添加一个工具类,在“引导类”的同级创建Utils/Turbo.php
<?php
namespace Vendor\Package\Utils;
use Illuminate\Http\RedirectResponse;
class Turbo {
public function __construct() {}
public function setUp(){
echo "this is a tool";
}
}
4. 创建Facades
Facades的功能就是美化类,可以使成员函数以静态成员的方式调用,在引导类同级创建Facades/Turbo.php
<?php
namespace Vendor\Package\Facades; use Illuminate\Support\Facades\Facade; class Turbo extends Facade { protected static function getFacadeAccessor() {
return 'turbo';
}
}
5. 绑定功能类到Ioc容器
修改引导类如下,其中$defer是表示延迟加载服务提供器。
<?php
namespace Vendor\Package; use Illuminate\Support\ServiceProvider; class PackageServiceProvider extends ServiceProvider { /**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = true; /**
* Bootstrap the application events.
*
* @return void
*/
public function boot(){
$this->package('vendor/package');
} /**
* Register the service provider.
*
* @return void
*/
public function register(){
$this->app->bindShared('turbo', function(){
return new \Vendor\Package\Utils\Turbo;
});
} /**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array('turbo');
} }
6.修改配置app/config/app.php
在providers数组中添加以下代码:
"providers" => array(
'Vendor\Package\PackageServiceProvider',
),
在aliases数组中添加别名Turbo:
'aliases' => array(
'Turbo' => 'Vendor\Package\Facades\Turbo',
),
接下来就可以在项目任何地方以Turbo::setUp()的形式运用包了。
Laravel Packages 开发的更多相关文章
- 基于Laravel+Swoole开发智能家居后端
基于Laravel+Swoole开发智能家居后端 在上一篇<Laravel如何优雅的使用Swoole>中我已经大概谈到了Laravel结合Swoole的用法. 今天,我参与的智能家居项目基 ...
- 使用laravel框架开发接口时ajax post请求报错419
nginx服务器,使用laravel框架开发后台接口.get请求正常,但是post请求一直报错.H5和APP都不成功,code=419. 解决办法: 找到 VerifyCsrfToken.php文件( ...
- Laravel 代码开发最佳实践
我们这里要讨论的并不是 Laravel 版的 SOLID 原则(想要了解更多 SOLID 原则细节查看这篇文章)亦或是设计模式,而是 Laravel 实际开发中容易被忽略的最佳实践. 内容概览 单一职 ...
- 转:Laravel 项目开发规范
文件介绍很好 值得细细看看 https://www.jianshu.com/p/e464a35e5ed2 https://learnku.com/docs/laravel-specification/ ...
- 使用 Laragon 在 Windows 中快速搭建 Laravel 本地开发环境 (转)
laravel学院 简介 对于那些使用 Windows 操作系统的同学来说,Homestead 和 LaraDock 虽说支持 Windows 系统,但是对初学者来说,安装配置起来还是有一定复杂度的, ...
- 学习 Laravel - Web 开发实战入门笔记(1)
本笔记根据 LearnKu 教程边学边记而成.该教程以搭建出一个类似微博的Web 应用为最终成果,在过程中学习 Laravel 的相关知识. 准备开发环境 原教程使用官方推荐的 Homestead 开 ...
- Laravel 虚拟开发环境 Homestead
简介 Laravel 致力于让你在 PHP 开发过程中更加轻松愉快,这其中也包括本地开发环境的搭建. Vagrant 提供了一种简单.优雅的方式来管理和配置虚拟机. Laravel Homestead ...
- laravel本地开发的项目部署到服务器上
不建议用ftp,建议用git.svn等工具从你的开发服务器上拉取.或者使用一些自动构建发布的工具.如果非要用ftp上传,建议用以下步骤: 服务器上安装composer,并使用`composer sel ...
- Laravel 项目开发环境配置
1.首先安装Laravel 依赖管理包工具 Composer (前提是本地装好了PHP php -v) php -r "copy('https://install.phpcomposer. ...
随机推荐
- Lucene学习总结之五:Lucene段合并(merge)过程分析
一.段合并过程总论 IndexWriter中与段合并有关的成员变量有: HashSet<SegmentInfo> mergingSegments = new HashSet<Segm ...
- 【转】Memcached管理与监控工具----MemAdmin
原文连接:http://blog.csdn.net/ajun_studio/article/details/6746877 原文作者:halfMe 转载注明以上信息! 使用MemCached以后,肯定 ...
- Js函数加括号、不加括号(转)
函数只要是要调用它进行执行的,都必须加括号.此时,函数()实际上等于函数的返回值.当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码. 不加括 ...
- showModalDialog(转)
基本介绍: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) ...
- Maven的使用--安装
Maven是一个java工具,所以在安装maven之前,先确保已经安装JDK. 1.下载maven3,最新版本是Maven3.2.1 ,下载地址:http://maven.apache.org/dow ...
- Android jar包混淆
具体可参考http://proguard.sourceforge.net/manual/examples.html#library 1.找到android的adt目录下的 D:\soft\adt-bu ...
- Java 学习 第三篇;面向对象
1:Java的常用包: 核心类在java 包中:扩展类在javax包中 java.lang 系统默认自动导入 包含String Math System Thread等类 java.util 包含了工具 ...
- 三星S5360(GALAXY Y)首次刷机尝试~
刷机包下载: http://www.romjd.com/Device/samsung-s5360 http://www.shuaji.com/rom/2033.htm#down http://www. ...
- 【转】高通平台android 环境配置编译及开发经验总结
原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...
- C语言随笔_return答疑
1. 例子,看实例2-2.这道题有同学会问,那个return有什么用?这么讲吧,return是个英文单词,中文意思是“返回”,用在程序里也是返回的意思,返回啥呢?返回一个值.在func函数中,retu ...