Rumah >pembangunan bahagian belakang >tutorial php >Pakej Komposer Peribadi dengan Gemfury

Pakej Komposer Peribadi dengan Gemfury

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-19 09:19:12376semak imbas

Private Composer Packages with Gemfury

mata utama

    Gemfury adalah penyelesaian platform-as-a-service (PAAS) untuk menganjurkan pakej komposer swasta, menyediakan alternatif kepada pilihan hosting diri seperti Toran Proxy atau Satis. Ia menyokong pelbagai bahasa termasuk Pakej Komposer PHP, Ruby Gems, Node.js NPM, Python Pypi, Apt, Yum, dan Nu-Get.
  • Untuk menggunakan Gemfury, anda perlu membuat akaun, membuat pakej, dan memuat naiknya ke platform. Ini boleh dilakukan dengan menggunakan Git dan mempunyai Gemfury mengendalikan selebihnya, atau dengan secara manual mengosongkan kod sumber pakej dan memuat naiknya di papan pemuka Gemfury.
  • anda boleh menambah repositori peribadi anda ke fail
  • projek anda. Ini membolehkan anda menggunakan mana -mana pakej komposer peribadi yang anda buat dengan Gemfury tanpa menambah repositori berasingan setiap kali anda mahu menggunakan pakej tersebut. composer.json
  • Gemfury juga menyediakan alat baris arahan untuk menguruskan pakej anda. Alat ini membolehkan anda menyenaraikan pakej anda, melihat versi pakej tertentu, dan banyak lagi. Anda boleh memasangnya menggunakan arahan
  • . sudo gem install gemfury
Katakan anda sudah biasa dengan komposer, ini adalah pengurus pakej PHP yang terbaru dan mungkin. Jika tidak, lihat pengenalan Alexander dan saya pasti anda akan segera tertarik kepadanya. Anda perlu mempunyai pengetahuan yang bekerja untuk memanfaatkan artikel ini.

Komposer berfungsi dengan cekap dan lancar dengan Packagist, repositori pakej awam yang komprehensif.

Walau bagaimanapun, lambat laun, anda akan menemui pakej yang anda tulis sendiri, yang atas sebab tertentu tidak boleh menjadi sumber terbuka dan dikongsi secara percuma melalui Packagist.

Terdapat beberapa pilihan untuk menganjurkan pakej peribadi ini. Anda boleh mengkonfigurasi fail

projek dengan menambah repositori pakej secara berasingan. Sebagai alternatif, Satis membolehkan anda menjana repositori statik anda sendiri. Sebagai alternatif, proksi Toran membolehkan anda membuat versi pembungkus peribadi yang dihoskan sendiri yang, sekali ditubuhkan, lebih mudah untuk dikendalikan daripada menentukan repositori dalam

anda. composer.json composer.json Gemfury adalah alternatif PaaS. Selain daripada ketenangan fikiran (walaupun perlu dibayar) bahawa penyelesaian yang dihoskan adalah kelebihan besar yang menyokong bukan sahaja pakej komposer PHP, tetapi juga permata Ruby, Node.js NPM, Python Pypi, APT, dan NU -Get. Ini sangat berguna jika anda mempunyai pelbagai bahasa.

mari kita menyelam cara menggunakannya.

Sediakan akaun anda

Pertama sekali, anda memerlukan akaun. Terdapat tempoh percubaan 14 hari, dengan akaun percuma terhad kepada satu kolaborator dan pakej hosting, dan pelbagai rancangan lain bermula pada $ 9 sebulan.

anda boleh mendaftar menggunakan alamat e -mel atau akaun github anda. Pergi ke laman web untuk mendaftar.

Buat pakej pertama anda

3

Cara paling mudah untuk membuat pakej baru ialah menggunakan arahan berikut:

<code class="language-bash">composer init</code>

Ia meminta anda satu siri soalan;

<code>...  (此处省略与原文相同的composer init交互过程) ...</code>
Seperti yang anda lihat, kami membuat pakej mudah dengan hanya satu Faker Ketergantungan.

Seterusnya, mari tambahkan garis ke

yang baru dibuat dan beritahu di mana untuk mencari kod sumber pakej. composer.json

<code class="language-json">"autoload": {        
    "psr-0": {
        "Acme\": "src/"
    }
},</code>
Sekarang mari kita buat pakej itu sendiri. Kami akan membuat kelas dengan hanya satu tujuan;

Dalam direktori kerja anda, buat direktori

dan src, dan kemudian buat fail berikut bernama src/Acme: Coupon.php

<code class="language-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));
    }

}</code>
Jalankan sekarang

untuk memuatkan satu -satunya kebergantungan dan konfigurasikan autoloader. composer install

Ini adalah pakej yang kami bina. Sekarang muat naik ke Gemfury.

Untuk meneruskan, anda memerlukan kunci API anda. Jika anda pergi ke papan pemuka anda, anda akan mendapatinya di bawah tetapan.

Cara paling mudah untuk membina dan memuat naik pakej adalah dengan hanya menggunakan git dan membiarkan Gemfury mengendalikan yang lain.

pertama membuat fail

dengan kandungan berikut: .gitignore

<code>vendor/
composer.lock</code>
memulakan repositori sekarang:

<code class="language-bash">git init</code>
Tambah fail:

Sekarang kita akan menambah repositori jauh git. Anda boleh mencari URL yang relevan dengan memilih bermula di papan pemuka Gemfury dan kemudian memilih tab PHP Composer. Ia akan kelihatan seperti ini:
<code class="language-bash">git add src
git add composer.json</code>

Pastikan untuk menggantikan
<code>https://your-username@git.fury.io/your-username/<package-name>.git</package-name></code>
dengan nama pengguna Gemfury anda (jika anda mendaftar dengan GitHub, ia akan sama dengan nama pengguna GitHub anda) dan tambahkannya sebagai repositori jauh:

your-username

Pada ketika ini, anda mempunyai dua pilihan. Yang pertama adalah menggunakan kawalan versi eksplisit, di mana anda menentukan versi dalam fail
<code class="language-bash">git remote add fury https://your-username@git.fury.io/your-username/coupon.git</code>
, seperti yang ditunjukkan di bawah:

composer.json

<code class="language-json">{
    "name": "your-username/coupon",
    "description": "Generates a coupon code",
        "version": "1.0.0",
    ...</code>
Adalah penting bahawa anda menggunakan versi semantik. Jika tidak, pakej anda tidak boleh dibina dengan betul; ini juga boleh membawa kepada beberapa mesej ralat yang aneh.

atau, anda boleh menggunakan tag git. Sebagai contoh, buat versi baru dengan tag, seperti yang ditunjukkan di bawah:

tidak kira kaedah mana yang anda ambil, langkah seterusnya adalah menyerahkan:
<code class="language-bash">git tag -a 1.0.0 -m "Version 1.0.0"</code>

Akhirnya, jalankan arahan berikut:
<code class="language-bash">git commit -a -m "Initial commit"</code>

Ini menolak kod anda ke Gemfury, yang kemudiannya akan membinanya secara automatik ke dalam pakej.
<code class="language-bash">git push fury master --tags</code>

Sekarang jika anda pergi ke papan pemuka anda, anda harus melihat bahawa repositori baru anda disenaraikan. Seterusnya, mari kita lihat bagaimana anda menggunakannya dalam projek anda.

Menggunakan pakej peribadi

Jika anda kembali ke papan pemuka dan pilih "Repos" di sebelah kiri, anda akan menemui URL Repositori Swasta anda. Ini harus disimpan secara peribadi, jadi sila selamatkannya. Ia akan kelihatan seperti ini:

Ia adalah
<code>https://php.fury.io/SECRET-CODE/your-username/</code>
yang menjadikannya tidak dapat diramalkan dan oleh itu sebenarnya peribadi.

SECRET-CODE tambahkan sekarang ke projek anda

:

<code class="language-bash">composer init</code>

Anda hanya perlu menambah repositori ini untuk menggunakan mana -mana pakej komposer peribadi yang anda buat dengan Gemfury. Tidak perlu menambah repositori berasingan setiap kali anda mahu menggunakan pakej tersebut.

Sekarang anda boleh memerlukan pakej peribadi anda seperti yang anda lakukan pada Packagist. Berikut adalah contoh lengkap projek composer.json:

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

Kaedah lain

secara peribadi, saya percaya bahawa menggunakan Git dan Tags adalah cara yang paling mudah dan paling berkesan untuk menguruskan pakej.

atau, jika anda lebih suka, anda boleh membinanya sendiri dengan zipping kod sumber pakej dan memuat naiknya di papan pemuka Gemfury.

alat baris perintah

Gemfury juga menyediakan alat baris arahan. Untuk memasangnya:

<code class="language-json">"autoload": {        
    "psr-0": {
        "Acme\": "src/"
    }
},</code>

Untuk menyenaraikan pakej anda, anda boleh menggunakan arahan berikut:

<code class="language-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));
    }

}</code>

untuk melihat versi pakej tertentu:

<code>vendor/
composer.lock</code>

Untuk maklumat lanjut mengenai CLI, sila lawati bahagian dokumentasi yang berkaitan.

Ringkasan

Dalam artikel ini, saya memperkenalkan Gemfury, salah satu daripada banyak pilihan untuk menguruskan repositori swasta. Sebagai penyelesaian PaaS, ia tidak memerlukan beban tambahan pilihan hosting diri seperti Toran dan lebih mudah digunakan daripada Satis. Ia juga mempunyai kelebihan besar pakej sokongan dalam pelbagai bahasa, dari pakej komposer PHP ke Ruby Gems dan Node.js NPM. Sudah tentu, sebagai penyelesaian PaaS, ia perlu membayarnya - tetapi mengapa tidak mencuba dengan percubaan percuma atau pelan pakej tunggal percuma untuk melihat sama ada ia sesuai untuk anda?

(Bahagian FAQ asal ditinggalkan di sini kerana bahagian ini adalah soalan yang sering ditanya, dan ia mempunyai pengulangan yang tinggi dari kandungan utama artikel itu, dan nilainya tidak tinggi selepas pseudo-asal.)

Atas ialah kandungan terperinci Pakej Komposer Peribadi dengan Gemfury. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn