私人作曲家套餐带有gemfury
关键要点
- Gemfury 是一款平台即服务 (PaaS) 解决方案,用于托管私有 Composer 包,为 Toran Proxy 或 Satis 等自托管选项提供替代方案。它支持多种语言,包括 PHP Composer 包、Ruby Gems、Node.js npm、Python PyPi、APT、Yum 和 Nu-Get。
- 要使用 Gemfury,您需要创建一个帐户,创建一个包,并将其上传到平台。这可以通过使用 Git 并让 Gemfury 处理其余部分来完成,也可以通过手动压缩包的源代码并通过 Gemfury 仪表板上传来完成。
- 您可以将您的私有存储库添加到项目的
composer.json
文件中。这允许您使用您使用 Gemfury 创建的任何私有 Composer 包,而无需每次要使用包时都添加单独的存储库。 - Gemfury 还提供了一个命令行工具来管理您的包。该工具允许您列出您的包,查看特定包的版本等等。可以使用命令
sudo gem install gemfury
安装它。
假设您熟悉 Composer,这是最新且可能是最棒的 PHP 包管理器。如果不是,请查看 Alexander 的介绍,我相信您会立即被它吸引。您需要具备它的工作知识才能充分利用本文。
Composer 可与 Packagist(一个全面的公共包存储库)有效且无缝地结合使用。
但是,迟早会遇到您自己编写的包的情况,由于某种原因,该包无法开源并通过 Packagist 免费共享。
托管这些私有包有几种选择。您可以通过分别添加包的存储库来配置项目的 composer.json
文件。或者,Satis 允许您生成您自己的静态存储库。或者,Toran Proxy 允许您创建 Packagist 的自托管私有版本,一旦设置好,它比在您的 composer.json
中指定存储库更容易管理。
Gemfury 是一种 PaaS 替代方案。除了托管解决方案带来的安心感(尽管需要付费)之外,一个巨大的优势是它不仅支持 PHP Composer 包,还支持 Ruby Gems、Node.js npm、Python PyPi、APT、Yum 和 Nu-Get。如果您掌握多种语言,这将非常有用。
让我们深入了解如何使用它。
设置您的帐户
首先,您需要一个帐户。有一个 14 天的试用期,一个免费帐户限制为一个协作者和一个托管包,以及一系列每月 9 美元起价的其他计划。
您可以使用您的电子邮件地址或 Github 帐户注册。前往网站注册。
创建您的第一个包
为了演示如何将 Gemfury 用于私有 Composer 包,让我们逐步创建一个包,稍后我们将将其提交到服务以在其他项目中使用。
创建新包最简单的方法是使用以下命令:
composer init
它会问您一系列问题;以下是此过程的一个示例记录:
<code>... (此处省略与原文相同的composer init交互过程) ...</code>
如您所见,我们正在创建一个只有一个依赖项 Faker 的简单包。
接下来,让我们在新建的 composer.json
中添加一行,告诉它在哪里查找包的源代码。
"autoload": { "psr-0": { "Acme\": "src/" } },
现在让我们创建包本身。我们将创建一个只有一个用途的类;使用复杂、绝密的专有算法为电子商务平台生成折扣优惠券代码。
在您的工作目录中,创建 src
和 src/Acme
目录,然后创建名为 Coupon.php
的以下文件:
<?php namespace Acme; use Faker\Factory; class Coupon { public static function generate($percent) { $faker = Factory::create(); return sprintf('%s-%s-%d', strtoupper(date('M')), strtoupper($faker->word()), intval($percent)); } }
现在运行 composer install
来加载我们唯一的依赖项并配置自动加载器。
这就是我们构建的包。现在将其上传到 Gemfury。
要继续,您需要您的 API 密钥。如果您转到您的仪表板,您会在“设置”下找到它。
构建和上传包最简单的方法是简单地使用 Git,并让 Gemfury 处理其余部分。
首先创建一个 .gitignore
文件,内容如下:
<code>vendor/ composer.lock</code>
现在初始化存储库:
git init
添加文件:
git add src git add composer.json
现在我们将添加一个 Git 远程仓库。您可以通过在 Gemfury 仪表板中选择“入门”,然后选择“PHP Composer”选项卡来找到相关的 URL。它看起来会像这样:
<code>https://your-username@git.fury.io/your-username/<package-name>.git</code>
请务必将 your-username
替换为您的 Gemfury 用户名(如果您使用 Github 注册,它将与您的 Github 用户名相同),并将其添加为远程仓库:
git remote add fury https://your-username@git.fury.io/your-username/coupon.git
此时,您有两个选择。第一种是使用显式版本控制,您在 composer.json
文件中指定版本,如下所示:
{ "name": "your-username/coupon", "description": "Generates a coupon code", "version": "1.0.0", ...
重要的是您使用语义版本控制。否则,您的包可能无法正确构建;这也可能导致一些措辞奇怪的错误消息。
或者,您可以使用 Git 标签。例如,使用标签创建新版本,如下所示:
git tag -a 1.0.0 -m "Version 1.0.0"
无论您采用哪种方法,下一步都是提交:
git commit -a -m "Initial commit"
最后,运行以下命令:
git push fury master --tags
这会将您的代码推送到 Gemfury,然后 Gemfury 会自动将其构建为包。
现在,如果您转到您的仪表板,您应该会看到您的新存储库已列出。接下来,让我们看看您如何在项目中使用它。
使用私有包
如果您返回仪表板并在左侧选择“Repos”,您会找到您的私有仓库 URL。这应该保持私密,所以请妥善保管。它看起来会像这样:
<code>https://php.fury.io/SECRET-CODE/your-username/</code>
正是 SECRET-CODE
使其不可猜测,因此实际上是私有的。
现在将其添加到您的项目的 composer.json
:
composer init
您只需要添加这个一个存储库即可使用您使用 Gemfury 创建的任何私有 Composer 包。无需每次要使用包时都添加单独的存储库。
现在您可以像在 Packagist 上一样需要您的私有包。这是一个项目 composer.json
的完整示例:
<code>... (此处省略与原文相同的composer init交互过程) ...</code>
其他方法
就我个人而言,我相信使用 Git 和标签是管理包最简单有效的方法。
或者,如果您愿意,您可以通过压缩包的源代码并通过 Gemfury 仪表板上传来自己构建它。
命令行工具
Gemfury 还提供了一个命令行工具。要安装它:
"autoload": { "psr-0": { "Acme\": "src/" } },
要列出您的包,您可以使用以下命令:
<?php namespace Acme; use Faker\Factory; class Coupon { public static function generate($percent) { $faker = Factory::create(); return sprintf('%s-%s-%d', strtoupper(date('M')), strtoupper($faker->word()), intval($percent)); } }
要查看特定包的版本:
<code>vendor/ composer.lock</code>
有关 CLI 的更多信息,请访问文档的相关部分。
总结
在本文中,我介绍了 Gemfury,这是管理私有存储库的众多选项之一。作为一种 PaaS 解决方案,它无需像 Toran 那样自托管选项的额外负担,并且比 Satis 更易于使用。它还具有支持各种语言的包的巨大优势,从 PHP Composer 包到 Ruby Gems 和 Node.js npm。当然,作为一种 PaaS 解决方案,它确实需要付费——但为什么不使用免费试用版或免费单包计划试用一下,看看它是否适合您呢?
(此处省略原文FAQs部分,因为该部分为常见问题解答,与文章主体内容重复性较高,伪原创后价值不高。)
以上是私人作曲家套餐带有gemfury的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

PHP8.1中的枚举功能通过定义命名常量增强了代码的清晰度和类型安全性。1)枚举可以是整数、字符串或对象,提高了代码可读性和类型安全性。2)枚举基于类,支持面向对象特性,如遍历和反射。3)枚举可用于比较和赋值,确保类型安全。4)枚举支持添加方法,实现复杂逻辑。5)严格类型检查和错误处理可避免常见错误。6)枚举减少魔法值,提升可维护性,但需注意性能优化。

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。
