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
Komposer berfungsi dengan cekap dan lancar dengan Packagist, repositori pakej awam yang komprehensif.
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
Ia meminta anda satu siri soalan;
<code>... (此處省略與原文相同的composer init交互過(guò)程) ...</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
"autoload": { "psr-0": { "Acme\": "src/" } },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)); } }Jalankan sekarang
untuk memuatkan satu -satunya kebergantungan dan konfigurasikan autoloader. composer install
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:
git initTambah 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
Pastikan untuk menggantikan
<code>https://your-username@git.fury.io/your-username/<package-name>.git</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
git remote add fury https://your-username@git.fury.io/your-username/coupon.git, seperti yang ditunjukkan di bawah:
composer.json
{ "name": "your-username/coupon", "description": "Generates a coupon code", "version": "1.0.0", ...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"
Akhirnya, jalankan arahan berikut:
git commit -a -m "Initial commit"
Ini menolak kod anda ke Gemfury, yang kemudiannya akan membinanya secara automatik ke dalam pakej.
git push fury master --tags
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
composer init
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交互過(guò)程) ...</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:
"autoload": { "psr-0": { "Acme\": "src/" } },
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)); } }
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

TosecurelyhandleAuthenticationandauthorizationInphp, ikuti: 1.alwayshashpasswordswithpassword_hash () andverifyUsingPassword_verify (), usePePreparedStatementStopreventsqlInjection, andStoreUserDatain $ _SessionAsLogin.2.implescureRoleRoleRoleRoleRole

Untuk mengendalikan muat naik fail dengan selamat di PHP, terasnya adalah untuk mengesahkan jenis fail, menamakan semula fail, dan menyekat kebenaran. 1. Gunakan finfo_file () untuk memeriksa jenis mime sebenar, dan hanya jenis tertentu seperti imej/jpeg dibenarkan; 2. Gunakan uniqid () untuk menghasilkan nama fail rawak dan simpannya dalam direktori akar bukan web; 3. Hadkan saiz fail melalui borang php.ini dan html, dan tetapkan kebenaran direktori ke 0755; 4. Gunakan Clamav untuk mengimbas malware untuk meningkatkan keselamatan. Langkah -langkah ini dengan berkesan menghalang kelemahan keselamatan dan memastikan bahawa proses muat naik fail adalah selamat dan boleh dipercayai.

Dalam PHP, perbezaan utama antara == dan == adalah ketat pemeriksaan jenis. == Penukaran jenis akan dilakukan sebelum perbandingan, contohnya, 5 == "5" pulangan benar, dan === meminta nilai dan jenis adalah sama sebelum benar akan dikembalikan, sebagai contoh, 5 === "5" mengembalikan palsu. Dalam senario penggunaan, === lebih selamat dan harus digunakan terlebih dahulu, dan == hanya digunakan apabila penukaran jenis diperlukan.

Kaedah menggunakan operasi matematik asas dalam PHP adalah seperti berikut: 1. Tanda tambahan menyokong bilangan bulat dan nombor terapung, dan juga boleh digunakan untuk pembolehubah. Nombor rentetan akan ditukar secara automatik tetapi tidak disyorkan kepada kebergantungan; 2. Tanda -tanda pengurangan - tanda, pembolehubah adalah sama, dan penukaran jenis juga terpakai; 3. Tanda -tanda pendaraban menggunakan tanda *, yang sesuai untuk nombor dan rentetan yang serupa; 4. Bahagian menggunakan / tanda, yang perlu mengelakkan pembahagian dengan sifar, dan perhatikan bahawa hasilnya mungkin nombor terapung; 5. Mengambil tanda modulus boleh digunakan untuk menilai angka ganjil dan bahkan, dan apabila memproses nombor negatif, tanda -tanda selebihnya selaras dengan dividen. Kunci untuk menggunakan pengendali ini dengan betul adalah untuk memastikan bahawa jenis data adalah jelas dan keadaan sempadan ditangani dengan baik.

Ya, PHP boleh berinteraksi dengan pangkalan data NoSQL seperti MongoDB dan Redis melalui sambungan atau perpustakaan tertentu. Pertama, gunakan pemacu MongoDBPHP (dipasang melalui PECL atau komposer) untuk membuat contoh pelanggan dan mengendalikan pangkalan data dan koleksi, penyisipan sokongan, pertanyaan, pengagregatan dan operasi lain; Kedua, gunakan perpustakaan predis atau lanjutan phpredis untuk menyambung ke REDIS, lakukan tetapan dan pengambilalihan nilai utama, dan mengesyorkan PHPREDI untuk senario berprestasi tinggi, sementara Predis mudah untuk penempatan pesat; Kedua-duanya sesuai untuk persekitaran pengeluaran dan didokumentasikan dengan baik.

Tostaycurrentwithphpdevelopmentsandbestpractices, followeyNewsssourcesLikePhp.netandphpweekly, engageWithCommunitiesonforumsandconference, keeptoolingupdatedandgraduallyAdoptNewFeatures, dan readribcoursourcourceSource

Phpbecamepopularforwebdevelopmentduetoitseaseoflearning, seamlessintegrationwithhtml, widespreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsLikeWordPress.itexcelsinhandessubmissions

TosetTheRightTimeZoneinPhp, USEDATE_DEFAULT_TIMEZONE_SET () functionAtthestArtAfyourscriptwithavalididentifiersuchas'america/new_york'.1.usedate_default_timeSet ()
