Heim > Backend-Entwicklung > PHP-Tutorial > Private Komponistpakete mit Gemfury

Private Komponistpakete mit Gemfury

Joseph Gordon-Levitt
Freigeben: 2025-02-19 09:19:12
Original
358 Leute haben es durchsucht

Private Composer Packages with Gemfury

Schlüsselpunkte

  • Gemfury ist eine PAAS-Lösung (Plattform-AS-a-Service) für die Hosting von privaten Komponistenpaketen und bietet eine Alternative zu Selbsthostoptionen wie toraner Proxy oder Sats. Es unterstützt mehrere Sprachen, einschließlich des PHP Composer-Pakets, Ruby Gems, Node.js NPM, Python Pypi, APT, Yum und Nu-Get.
  • Um Gemfury zu verwenden, müssen Sie ein Konto erstellen, ein Paket erstellen und auf die Plattform hochladen. Dies kann durch die Verwendung von Git und die Verwendung von Gemfury den Rest erfolgen oder durch manuelles Ziehen des Quellcode des Pakets und das Hochladen auf dem Gemfury -Dashboard.
  • Sie können Ihr privates Repository in die composer.json -Fatei Ihres Projekts hinzufügen. Auf diese Weise können Sie alle privaten Komponistenpakete verwenden, die Sie mit Gemfury erstellen, ohne jedes Mal ein separates Repository hinzuzufügen, wenn Sie das Paket verwenden möchten.
  • Gemfury bietet auch ein Befehlszeilen -Tool zum Verwalten Ihrer Pakete. Mit diesem Tool können Sie Ihre Pakete auflisten, Versionen bestimmter Pakete anzeigen und mehr. Sie können es mit dem Befehl sudo gem install gemfury installieren.

Angenommen, Sie sind mit Composer vertraut. Dies ist der neueste und wahrscheinlich beste PHP -Paketmanager. Wenn nicht, schauen Sie sich die Einführung von Alexander an und ich bin sicher, dass Sie sich sofort davon angezogen fühlen. Sie müssen das Arbeitswissen haben, um das Beste aus diesem Artikel zu machen.

Composer arbeitet effizient und nahtlos mit Packagist, einem umfassenden öffentlichen Paket -Repository.

früher oder später werden Sie jedoch auf ein Paket stoßen, das Sie selbst geschrieben haben, das aus irgendeinem Grund nicht Open Source sein und über Packagist kostenlos geteilt werden kann.

Es gibt mehrere Optionen zum Hosting dieser privaten Pakete. Sie können die Datei composer.json des Projekts konfigurieren, indem Sie das Repository des Pakets separat hinzufügen. Alternativ können Sie mit SATIS Ihr eigenes statisches Repository generieren. Alternativ können Sie mit dem Toran-Proxy eine selbst gehostete private Version von Packagist erstellen, die nach der Einrichtung einfacher zu verwalten ist als ein Repository in Ihrem composer.json anzugeben.

Gemfury ist eine PaaS -Alternative. Abgesehen von der Ruhe (obwohl es bezahlt werden muss), dass gehostete Lösungen ein großer Vorteil sind, unterstützt es nicht nur das PHP -Komponist -Paket, sondern auch Ruby Gems, Node.js NPM, Python Pypi, APT, Yum und Nu -Erhalten. Dies ist sehr nützlich, wenn Sie mehrere Sprachen haben.

Lassen Sie uns darauf eingehen, wie man es benutzt.

Richten Sie Ihr Konto ein

Erstens benötigen Sie ein Konto. Es gibt eine 14-tägige Testzeit mit einem kostenlosen Konto, das auf einen Mitarbeiter und ein Hosting-Paket beschränkt ist, und eine Reihe weiterer Pläne ab 9 USD pro Monat.

Sie können sich über Ihre E -Mail -Adresse oder Ihr GitHub -Konto registrieren. Gehen Sie zur Website, um sich zu registrieren.

Erstellen Sie Ihr erstes Paket

Um zu demonstrieren, wie Sie Gemfury für ein privates Komponist -Paket verwenden, erstellen wir Schritt für Schritt ein Paket, das wir dem Service für später in anderen Projekten einreichen werden.

Der einfachste Weg, um ein neues Paket zu erstellen, besteht darin, den folgenden Befehl zu verwenden:

composer init
Nach dem Login kopieren
Nach dem Login kopieren

Es stellt Ihnen eine Reihe von Fragen;

<code>...  (此处省略与原文相同的composer init交互过程) ...</code>
Nach dem Login kopieren
Nach dem Login kopieren
Wie Sie sehen, erstellen wir ein einfaches Paket mit nur einer Abhängigkeitsfördererin.

Fügen wir als nächstes dem neu erstellten

eine Zeile hinzu und geben Sie ihm an, wo Sie den Quellcode des Pakets finden. composer.json

"autoload": {        
    "psr-0": {
        "Acme\": "src/"
    }
},
Nach dem Login kopieren
Nach dem Login kopieren
Lassen Sie uns jetzt das Paket selbst erstellen. Wir erstellen eine Klasse mit nur einem Zweck.

Erstellen Sie in Ihrem Arbeitsverzeichnis die Verzeichnisse

und src und erstellen Sie dann die folgende Datei mit dem Namen 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));
    }

}
Nach dem Login kopieren
Nach dem Login kopieren
Ausführen jetzt

, um unsere einzigen Abhängigkeiten zu laden und den Autoloader zu konfigurieren. composer install

Dies ist das Paket, das wir erstellt haben. Laden Sie es nun in Gemfury hoch.

Um fortzufahren, benötigen Sie Ihren API -Schlüssel. Wenn Sie zu Ihrem Dashboard gehen, finden Sie es unter Einstellungen.

Der einfachste Weg, ein Paket zu erstellen und hochzuladen, besteht darin, einfach Git zu verwenden und Gemfury den Rest zu erledigen.

Erstellen Sie zuerst eine

Datei mit dem folgenden Inhalt: .gitignore

<code>vendor/
composer.lock</code>
Nach dem Login kopieren
Nach dem Login kopieren
Initialisieren Sie jetzt das Repository:

git init
Nach dem Login kopieren
Datei hinzufügen:

git add src
git add composer.json
Nach dem Login kopieren
Jetzt werden wir ein Git -Remote -Repository hinzufügen. Sie finden die entsprechende URL, indem Sie Erste Schritte im Gemfury -Dashboard auswählen und dann die Registerkarte PHP -Komponist auswählen. Es wird so aussehen:

<code>https://your-username@git.fury.io/your-username/<package-name>.git</code>
Nach dem Login kopieren
Stellen Sie sicher

your-username Zu diesem Zeitpunkt haben Sie zwei Möglichkeiten. Die erste besteht darin, eine explizite Versionskontrolle zu verwenden, bei der Sie die Version in der Datei

wie unten angegeben:
git remote add fury https://your-username@git.fury.io/your-username/coupon.git
Nach dem Login kopieren

composer.json

Es ist wichtig, dass Sie semantische Versionen verwenden. Andernfalls kann Ihr Paket nicht korrekt erstellt werden.
{
    "name": "your-username/coupon",
    "description": "Generates a coupon code",
        "version": "1.0.0",
    ...
Nach dem Login kopieren

Oder Sie können das Git -Tag verwenden. Erstellen Sie beispielsweise eine neue Version mit einem Tag, wie unten gezeigt:

Unabhängig davon, welche Methode Sie einnehmen, ist der nächste Schritt zu reichen:

git tag -a 1.0.0 -m "Version 1.0.0"
Nach dem Login kopieren

Führen Sie schließlich den folgenden Befehl aus:

git commit -a -m "Initial commit"
Nach dem Login kopieren

Dies drückt Ihren Code zu Gemfury, wodurch er automatisch in ein Paket aufgebaut wird.

git push fury master --tags
Nach dem Login kopieren
Wenn Sie jetzt zu Ihrem Dashboard gehen, sollten Sie sehen, dass Ihr neues Repository aufgeführt ist. Lassen Sie uns als nächstes sehen, wie Sie es in Ihrem Projekt verwenden.

Verwenden Sie Private Package

Wenn Sie zum Dashboard zurückkehren und links "Repos" auswählen, finden Sie Ihre private Repository -URL. Dies sollte privat gehalten werden. Bitte halten Sie es sicher. Es wird so aussehen:

Es ist

, das es unvorhersehbar macht und daher tatsächlich privat ist.
<code>https://php.fury.io/SECRET-CODE/your-username/</code>
Nach dem Login kopieren

Fügen Sie es jetzt zu Ihrem Projekt SECRET-CODE:

hinzu
composer init
Nach dem Login kopieren
Nach dem Login kopieren

Sie müssen nur dieses eine Repository hinzufügen, um alle privaten Komponistenpakete zu verwenden, die Sie mit Gemfury erstellt haben. Es ist nicht erforderlich, jedes Mal ein separates Repository hinzuzufügen, wenn Sie das Paket verwenden möchten.

Jetzt können Sie Ihr Privatpaket genauso benötigen, wie Sie es bei Packagist tun. Hier ist ein vollständiges Beispiel für ein Projekt composer.json:

<code>...  (此处省略与原文相同的composer init交互过程) ...</code>
Nach dem Login kopieren
Nach dem Login kopieren

Andere Methoden

persönlich glaube ich, dass die Verwendung von Git und Tags der einfachste und effektivste Weg ist, Pakete zu verwalten.

Oder, wenn Sie es vorziehen, können Sie es selbst erstellen, indem Sie den Quellcode des Pakets abzüglich aufnehmen und auf dem Gemfury -Dashboard hochladen.

Befehlszeilenwerkzeug

Gemfury bietet auch ein Befehlszeilenwerkzeug. So installieren Sie es:

"autoload": {        
    "psr-0": {
        "Acme\": "src/"
    }
},
Nach dem Login kopieren
Nach dem Login kopieren

Um Ihr Paket aufzulisten, können Sie den folgenden Befehl verwenden:

<?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));
    }

}
Nach dem Login kopieren
Nach dem Login kopieren

Um die Version eines bestimmten Pakets anzuzeigen:

<code>vendor/
composer.lock</code>
Nach dem Login kopieren
Nach dem Login kopieren

Weitere Informationen zu CLI finden Sie in den entsprechenden Abschnitten der Dokumentation.

Zusammenfassung

In diesem Artikel stelle ich Gemfury vor, eine der vielen Optionen für die Verwaltung privater Repositorys. Als PaaS-Lösung erfordert es nicht die zusätzliche Belastung durch Selbsthostoptionen wie Toran und ist einfacher zu bedienen als STIS. Es hat auch den enormen Vorteil, Pakete in einer Vielzahl von Sprachen zu unterstützen, von PHP -Komponistenpaketen bis hin zu Ruby Edelsteinen und Node.js NPM. Natürlich muss es als PaaS -Lösung dafür bezahlen - aber warum nicht mit einer kostenlosen Testversion oder einem kostenlosen Einzelpaketplan versuchen, ob es für Sie richtig ist?

(Der ursprüngliche FAQS-Teil wird hier weggelassen, da dieser Teil eine häufig gestellte Frage ist und eine hohe Wiederholung des Hauptinhalts des Artikels hat und sein Wert nach Pseudooriginalität nicht hoch ist.)

Das obige ist der detaillierte Inhalt vonPrivate Komponistpakete mit Gemfury. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage