序言
介绍#
根据我的经验,学习为 Laravel 开发扩展包非常具有挑战性,这就是为什么我以前写 如何创建扩展包 文章的原因。
时间过去很久了,我开始认为这个主题应该有属于自己的手册,而不是仅仅通过几篇文章来介绍,那么电子书类型的开发指南就很适合。通过把博客中的文章整理成一个系列,并在个别的章节扩展了其他几个主题。这些章节都可以在 GitHub 上找到,非常欢迎大家贡献(pull requests)你的想法。同时,我也希望这个网站可以成为分享 Laravel 扩展包开发知识的地方,从而帮助更多开发者更快的扩展包的开发。
强烈建议大家参与 为这个项目做贡献。请随时提交 PR,即使不成熟也未尝不可。
首先,我要感谢 Marcel Pociot。他非常清晰、结构化且详细的 PHP 扩展包开发 视频课程 帮助我迅速开始开发自己的扩展包。如果你想学习如何创建 PHP 扩展包(与框架无关),我清冽推荐他的视频课程。
「译者注」 我也推荐一个学习如何开发扩展包的教程,非常感谢 @overtrue 以及 @liyu、@summer 老师,他们制作了 LX1 Laravel / PHP 扩展包视频教程 和 LX2 PHP 扩展包实战教程 - 从入门到发布 教程,LX1 为视频教程,LX2 为文章教程都非常不错呦!
开发扩展包的原因#
你可能会遇到一种情况,想在其他程序中使用当前项目中的某些功能,或者将某些功能开源,但将其与主程序分开。在这些情况下,将代码提取到单独的扩展包中是有意义的。扩展包提供了一种向现有应用程序添加其他功能的简便方法,并且主要集中在单个功能上。
Composer & Packagist#
在编写本文时,在 Packagist 上已经有近 24 万个扩展包可用了,这是 PHP 扩展包的主要存储库。
使用 Composer - PHP 的扩展包管理系统来 下载和安装扩展包,它会自动管理相关的依赖包,更方便、安全。
要在现有的 Laravel 项目中安装扩展包,composer require <vendor>/<package>
命令会将所有必须的文件下载到项目的 /vendor
目录下,文件夹会已 <vendor>
名进行命名区分。这样扩展包代码将与应用程序代码分离,意味着这部分代码将有其他人(一版是该扩展包的作者)进行维护。每当扩展包需要更新时,只需要运行 composer update
就可以获取扩展包的最新版本。
开发扩展包的工具#
在第一章中 ,将介绍扩展包的基本结构。现在,每次从头开始设置基本结构会很麻烦,这就是为什么有人创建了一些扩展包的原因。下面推荐几款比较常用的扩展包:
由 Marcel Pociot 制作的扩展包 Laravel Package Boilerplate ,可以生成 Laravel 专用的模板以及通用的 PHP 扩展包模板,并打包为
.zip
文件下载。由 Jeroen-G 制作的扩展包 Laravel Packager ,它提供了一个 cli 命令,可以从现有的 Laravel 应用程序中快速设置基本模板。它还可以处理一些必要的设置,我们将在后面的章节中进行讨论。该扩展包最近在 Laracasts 中得到了推荐 。
由 DelveFore 制作的扩展包 Laravel Packager Hermes ,可以使用该 扩展包中的 Artisan 命令来快速生成 Laravel 的特定类。不过当前它仅支持生成
Controllers
模板。Laravel Package Tools 与前面提到的扩展包 一样,这个扩展包提供了 Artisan 命令以快速搭建脚手架文件,例如
Commands
,Requests
,Jobs
,Events
等。Orchestral Canvas 扩展包提供了代码生成器并且能复制 Laravel 应用程序中可用的所有
make
artisan 命令,更方便的创建模板文件。Yeoman Laravel Package Scaffolder 扩展包提供了一个独立的代码生成器来快速构建 Laravel 扩展包。它会自动生成一个基本的结构,包括一个
composer.json
文件和一个配置好的服务提供者。你只需取消相关的注释后就可以开始开发。Laravel Packer 是一个 PHP 扩展包,它提供了一个命令行工具来构建基本的扩展包目录结构和
composer.json
文件,在扩展包内还提供 Laravel 的make
命令,更方便的创建模板文件。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: