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

Pakej Komposer Peribadi dengan Gemfury

Joseph Gordon-Levitt
Lepaskan: 2025-02-19 09:19:12
asal
358 orang telah melayarinya

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:

composer init
Salin selepas log masuk
Salin selepas log masuk

Ia meminta anda satu siri soalan;

<code>...  (此处省略与原文相同的composer init交互过程) ...</code>
Salin selepas log masuk
Salin selepas log masuk
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

"autoload": {        
    "psr-0": {
        "Acme\": "src/"
    }
},
Salin selepas log masuk
Salin selepas log masuk
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

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

}
Salin selepas log masuk
Salin selepas log masuk
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>
Salin selepas log masuk
Salin selepas log masuk
memulakan repositori sekarang:

git init
Salin selepas log masuk
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:
git add src
git add composer.json
Salin selepas log masuk

Pastikan untuk menggantikan
<code>https://your-username@git.fury.io/your-username/<package-name>.git</code>
Salin selepas log masuk
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
git remote add fury https://your-username@git.fury.io/your-username/coupon.git
Salin selepas log masuk
, seperti yang ditunjukkan di bawah:

composer.json

{
    "name": "your-username/coupon",
    "description": "Generates a coupon code",
        "version": "1.0.0",
    ...
Salin selepas log masuk
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:
git tag -a 1.0.0 -m "Version 1.0.0"
Salin selepas log masuk

Akhirnya, jalankan arahan berikut:
git commit -a -m "Initial commit"
Salin selepas log masuk

Ini menolak kod anda ke Gemfury, yang kemudiannya akan membinanya secara automatik ke dalam pakej.
git push fury master --tags
Salin selepas log masuk

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>
Salin selepas log masuk
yang menjadikannya tidak dapat diramalkan dan oleh itu sebenarnya peribadi.

SECRET-CODE tambahkan sekarang ke projek anda

:

composer init
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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:

"autoload": {        
    "psr-0": {
        "Acme\": "src/"
    }
},
Salin selepas log masuk
Salin selepas log masuk

Untuk menyenaraikan pakej anda, anda boleh menggunakan arahan berikut:

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

}
Salin selepas log masuk
Salin selepas log masuk

untuk melihat versi pakej tertentu:

<code>vendor/
composer.lock</code>
Salin selepas log masuk
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan