首頁 後端開發 php教程 私人作曲家套餐帶有gemfury

私人作曲家套餐帶有gemfury

Feb 19, 2025 am 09:19 AM

Private Composer Packages with 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/"
    }
},
登入後複製
登入後複製

現在讓我們創建包本身。我們將創建一個只有一個用途的類;使用複雜、絕密的專有算法為電子商務平台生成折扣優惠券代碼。

在您的工作目錄中,創建 srcsrc/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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1248
24
PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

說明PHP中的安全密碼散列(例如,password_hash,password_verify)。為什麼不使用MD5或SHA1? 說明PHP中的安全密碼散列(例如,password_hash,password_verify)。為什麼不使用MD5或SHA1? Apr 17, 2025 am 12:06 AM

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP如何安全地上載文件? PHP如何安全地上載文件? Apr 10, 2025 am 09:37 AM

PHP通過$\_FILES變量處理文件上傳,確保安全性的方法包括:1.檢查上傳錯誤,2.驗證文件類型和大小,3.防止文件覆蓋,4.移動文件到永久存儲位置。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型? PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型? Apr 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

See all articles