本书未发布

序言

未匹配的标注

介绍#

根据我的经验,学习为 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 命令,更方便的创建模板文件。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/laravel-package...

译文地址:https://learnku.com/docs/laravel-package...

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~