laravel php 扩展,Laravel 的扩展插件开发指南

Laravel 的扩展插件开发指南

简介

扩展包是添加功能到 Laravel 的主要方式。扩展包可以包含许多好用的功能,像 Carbon 可用于处理时间,或像 Behat 这种完整的 BDD 测试框架。

当然,这有非常多不同类型的扩展包。有些扩展包是独立运作的,意思是指他们并不依赖于任何 PHP 框架。刚刚所提到的 Carbon 及 Behat 就是这种扩展包。要在 Laravel 中使用这种扩展包只需要在 composer.json 文件里引入它们即可。

另一方面,有些扩展包特别指定只能在 Laravel 里面集成。这些扩展包可能包含路由、控制器、视图以及扩展包的相关设置,目的是增强 Laravel 本身的功能。这份指南里将主要以开发 Laravel 专属的扩展包为目标进行说明。

Facade 注解

当开发 Laravel 应用程序时,通常来讲你使用契约(contracts) 还是 facades 并没有什么区别,因为他们都提供了基本相同的水平的可测试性。但是,在进行扩展包开发的时候,你开发的扩展包并不能访问所有 Laravel 提供的测试辅助函数。如果想要别人在一个 Laravel 应用程序中,能够开发你。如果你想写扩展包的测试,并让这些测试看起来像是在一个典型的 Laravel 应用程序里,您可以使用 Orchestral Testbench。

扩展包发现

在 Laravel 应用程序的 config/app.php 配置文件中,providers 选项定义了应该被 Laravel 加载的服务提供者的列表。当有人安装你的扩展包时,你需要让你的服务提供者包含在这个列表里。而不是要求用户手动将你的服务提供者添加到这个列表里,你可能需要在你扩展包 composer.json 文件的 extra 部分的定义这些提供者。除了服务提供者,你也要列出可能想要注册的 facades:

"extra": {

"laravel": {

"providers": [

"Barryvdh\\Debugbar\\ServiceProvider"

],

"aliases": {

"Debugbar": "Barryvdh\\Debugbar\\Facade"

}

}

},

当 Laravel 安装的时候,一旦发现你的扩展包被配置,Laravel 将会自动的注册它的服务提供者和 facades,为扩展包的用户提供一个方便的安装体验。

选择扩展包发现

如果你是扩展包的使用者,你想要禁用一个包的扩展包发现,你可以在应用程序的 composer.json 文件的 extra 部分列出这个扩展包:

"extra": {

"laravel": {

"dont-discover": [

"barryvdh/laravel-debugbar"

]

}

},

你可以通过在应用程序的 dont-discover 指令中使用 * 字符,禁用扩展包发现功能:

"extra": {

"larave

你可能感兴趣的:(laravel,php,扩展)