Untuk membuat pakej Laravel, anda mesti terlebih dahulu menubuhkan struktur direktori dan memulakan komposer, dan menubuhkan pemuatan automatik PSR-4; 2. Buat penyedia perkhidmatan untuk mendaftarkan laluan, pandangan, konfigurasi, dan sebagainya; 3. Tambah fail dalam pakej seperti konfigurasi, penghijrahan, pandangan, dan lain -lain seperti yang diperlukan; 4. Muatkan pakej secara tempatan melalui repositori jalan dalam projek utama; 5. Fungsi ujian tempatan, termasuk penghijrahan, menerbitkan konfigurasi dan mengakses laluan; 6. Apabila siap, tolak ke GitHub dan menerbitkan kepada Packagist untuk orang lain memasang; 7. Ikuti amalan terbaik, gunakan kebergantungan komponen dan bukannya rangka kerja lengkap, tulis dokumen yang jelas dan pastikan kualiti kod. Proses lengkap termasuk pembinaan struktur, pendaftaran penyedia perkhidmatan, pelaksanaan fungsi, ujian tempatan dan pelepasan akhir, dan akhirnya berakhir dengan akhir yang lengkap.
Mewujudkan pakej untuk Laravel adalah cara terbaik untuk mengatur kod yang boleh diguna semula, berkongsi fungsi merentasi projek, atau menyumbang kepada ekosistem Laravel. Berikut adalah panduan praktikal untuk membantu anda membina pakej Laravel dari awal.

1. Sediakan struktur pakej
Mulakan dengan membuat direktori untuk pakej anda. Adalah biasa untuk meletakkan pakej di bawah folder packages
dalam projek Laravel anda semasa pembangunan.
MKDIR -P Pakej/Nama-nama/Nama Pemasangan Anda Pakej CD/nama-nama anda/nama-pakej anda
Kemudian mulakan pakej komposer:

Komposer init
Isi butiran. Pastikan untuk menetapkan:
- Jenis:
library
(ataularavel-package
jika anda mahu) - PSR-4 Autoloading: misalnya,
"YourVendor\\YourPackage\\": "src/"
Selepas composer init
, composer.json
anda harus kelihatan seperti ini:

{ "Nama": "Vendor/Pemasangan Anda", "jenis": "perpustakaan", "Penerangan": "Penerangan ringkas pakej anda", "Lesen": "MIT", "Penulis": [ { "Nama": "Nama Anda", "E -mel": "you@example.com" } ], "Autoload": { "PSR-4": { "Yourvendor \\ yourpackage \\": "src/" } }, "Memerlukan": { "Illuminate/Support": "^10.0 |^11.0" }, "tambahan": { "Laravel": { "Penyedia": [ "Yourvendor \\ yourpackage \\ yourpackageServiceProvider" ] } } }
2. Buat Pembekal Perkhidmatan
Pakej Laravel biasanya termasuk pembekal perkhidmatan untuk mendaftarkan pengikatan, laluan, pandangan, atau arahan.
Menjana penyedia perkhidmatan di src/YourPackageServiceProvider.php
:
<? Php ruang nama yourvendor \ yourpackage; Gunakan Illuminate \ Support \ ServiceProvider; Kelas YourPackageServiceProvider Memperluas Perkhidmatan { Daftar Fungsi Awam () { // mengikat sebarang antara muka atau singleton jika diperlukan // $ this-> app-> singleton ('package your', function () { // Kembali baru anda; //}); } Boot Fungsi Awam () { // Laluan beban, pandangan, konfigurasi, dll. $ this-> loadRoutesFrom (__ dir __. '/Laluan/web.php'); $ this-> loadViewsFrom (__ dir __. '/Sumber/pandangan', 'pakej anda'); $ this-> loadMigrationsFrom (__ dir __. '/pangkalan data/migrasi'); $ this-> menerbitkan ([ __Dir __. '/Config/your-package.php' => config_path ('your-package.php'), ]); // Anda juga boleh mendaftarkan arahan, fasad, dll. } }
?? hanya termasuk perkara seperti
loadRoutesFrom
,loadViewsFrom
, dan lain -lain, jika pakej anda sebenarnya menggunakannya.
3. Tambahkan fail khusus pakej (pilihan)
Bergantung pada pakej anda, anda mungkin mahu memasukkan:
- Laluan (
routes/web.php
) - Pengawal (
src/Http/Controllers/
) - Pandangan (
resources/views/
) - Fail konfigurasi (
config/your-package.php
) - Migrasi (
database/migrations/
) - Aset (jika berkaitan frontend)
Contoh: Buat fail konfigurasi di config/your-package.php
:
<? Php Kembali [ 'diaktifkan' => env ('your_package_enabled', benar), 'api_key' => env ('your_package_api_key'), ];
Dan menerbitkannya dalam kaedah boot()
pembekal perkhidmatan anda (sudah ditunjukkan di atas).
4. Autoload pakej dalam aplikasi Laravel anda (untuk pembangunan)
Semasa membangun, beritahu aplikasi Laravel utama anda untuk memuatkan pakej tempatan anda.
Dalam Projek Root composer.json
, tambahkan:
"Repositori": [ { "jenis": "jalan", "URL": "Pakej/Nama-nama/Nama Pemasangan Anda" } ]
Kemudian memerlukan pakej anda:
Komposer Memerlukan Vendor/Package Anda @Dev
Komposer akan menyegarkan pakej tempatan anda.
5. Uji pakej anda secara tempatan
Anda boleh sekarang:
- Jalankan Migrasi:
php artisan migrate --path=vendor/your-vendor/your-package/database/migrations
- Terbitkan Config:
php artisan vendor:publish --provider="YourVendor\\YourPackage\\YourPackageServiceProvider"
- Laluan akses, pandangan, dan sebagainya, seperti yang ditakrifkan
Gunakan alat ujian Laravel ( phpunit
, perosak) untuk menulis ujian di dalam tests/
direktori pakej anda.
6. Sediakan untuk Siaran Awam (Pilihan)
Sekiranya anda ingin berkongsi pakej anda secara terbuka:
- Tolak ke GitHub:
git init
, komit, dan tolak - Tag Siaran:
git tag v1.0.0
- Terbitkan di Packagist: http://ipnx.cn/link/df543abd114ce563a23341c8a0707de6
Selepas itu, yang lain boleh memasangnya melalui:
Komposer memerlukan vendor/pakej anda
7. Amalan Terbaik
- Gunakan Autoloading PSR-4 secara konsisten.
- Elakkan konflik versi Laravel: Gunakan kekangan versi seperti
"^10.0 || ^11.0"
dalamrequire
. - Jangan sertakan
laravel/framework
yangrequire
; Gunakan komponen tertentu sepertiilluminate/support
,illuminate/database
, dll. - Tulis ReadMe yang jelas dengan arahan pemasangan dan penggunaan.
- Pertimbangkan menggunakan phpstan atau mazmur untuk kualiti kod.
Ringkasan
Untuk membuat pakej Laravel:
- Sediakan folder dan
composer.json
- Buat Pembekal Perkhidmatan
- Tambahkan logik, laluan, pandangan, atau konfigurasi yang diperlukan
- Uji secara tempatan menggunakan repositori jalan
- Siaran pada Packagist apabila bersedia
Ia tidak rumit, tetapi ia memerlukan perhatian kepada autoloading, cangkuk penyedia perkhidmatan, dan tradisi pakej Laravel.
Pada asasnya, hanya strukturnya seperti aplikasi mini-laravel di dalam src
, mendaftarkannya melalui pembekal perkhidmatan, dan biarkan komposer autoload itu.
Atas ialah kandungan terperinci Bagaimana untuk membuat pakej untuk Laravel?. 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

Terdapat tiga cara untuk menambah peraturan pengesahan tersuai di Laravel: Menggunakan penutupan, kelas peraturan, dan permintaan borang. 1. Gunakan penutupan sesuai untuk pengesahan ringan, seperti menghalang nama pengguna "admin"; 2. Buat kelas peraturan (seperti ValidUserNamerule) untuk membuat logik kompleks lebih jelas dan dapat dipelihara; 3. Mengintegrasikan pelbagai peraturan dalam permintaan borang dan mengurus logik pengesahan secara berpusat. Pada masa yang sama, anda boleh menetapkan arahan melalui kaedah mesej tersuai atau array mesej ralat masuk untuk meningkatkan fleksibiliti dan penyelenggaraan.

Kaedah teras untuk aplikasi Laravel untuk melaksanakan sokongan berbilang bahasa termasuk: menetapkan fail bahasa, penukaran bahasa dinamik, penghalaan URL terjemahan, dan mengurus kekunci terjemahan dalam templat bilah. Pertama, aturkan rentetan setiap bahasa dalam folder yang sepadan (seperti en, es, fr) dalam direktori /sumber /lang, dan tentukan kandungan terjemahan dengan mengembalikan array bersekutu; 2. Terjemahkan nilai utama melalui panggilan fungsi penolong \ _ _ _ _ (), dan gunakan app :: setLocale () untuk menggabungkan sesi atau parameter penghalaan untuk merealisasikan pertukaran bahasa; 3. Untuk URL Terjemahan, laluan boleh ditakrifkan untuk bahasa yang berbeza melalui kumpulan penghalaan prefixed, atau alias laluan dalam fail bahasa yang dipetakan secara dinamik; 4. Simpan kunci terjemahan ringkas dan

TowOrkeffectivyWithPivotTableSinlaravel, firstAccessPivotDataingWithPivot () orwithTimestamps (), thenupdateEntriesWithupdatee XistingPivot (), ManagerelationshipSviadetach () andSync (), AnduseCustompivotModelSwhenneeded.1.usewithPivot () toincludespecificcol

Laravelprovidesacleanandflexiblaytosendnotificationsviamultiplechannelslikeemail, sms, in-appalerts, andpushnotifications.youdinotificationchannelsinthevia () methodoFanotificationClass, andImplementsPecificmethods (toDDoTaTaStoMail (toDDoTaTaStomail (toDDoTaTaSTOMAIL (

ServiceProvider adalah mekanisme teras yang digunakan dalam rangka kerja Laravel untuk mendaftarkan perkhidmatan dan memulakan logik. Anda boleh membuat perkhidmatan perkhidmatan tersuai melalui perintah artisan; 1. Kaedah daftar digunakan untuk mengikat perkhidmatan, mendaftarkan singleton, menetapkan alias, dan lain -lain, dan perkhidmatan lain yang belum dimuatkan tidak dapat dipanggil; 2. Kaedah boot berjalan selepas semua perkhidmatan didaftarkan dan digunakan untuk mendaftarkan pendengar acara, melihat sintesis, middleware dan logik lain yang bergantung kepada perkhidmatan lain; Kegunaan umum termasuk antara muka dan pelaksanaan yang mengikat, mendaftarkan fasad, memuatkan konfigurasi, mendaftarkan arahan baris arahan dan melihat komponen; Adalah disyorkan untuk memusatkan pengikatan yang relevan kepada perkhidmatan perkhidmatan untuk mengurus, dan memberi perhatian kepada pendaftaran

Suntikan ketergantungan secara automatik mengendalikan kebergantungan kelas melalui bekas perkhidmatan di Laravel tanpa objek baru manual. Intinya adalah suntikan pembina dan suntikan kaedah, seperti lulus secara automatik dalam contoh permintaan dalam pengawal. Ketergantungan parses Laravel melalui jenis arahan dan rekursif mencipta objek yang diperlukan. Antara muka dan pelaksanaan yang mengikat boleh digunakan oleh pembekal perkhidmatan untuk menggunakan kaedah mengikat, atau singleton untuk mengikat singleton. Apabila menggunakannya, anda perlu memastikan jenis arahan, elakkan komplikasi pembina, gunakan pengikatan konteks dengan berhati -hati, dan memahami peraturan parsing automatik. Menguasai ini dapat meningkatkan fleksibiliti dan penyelenggaraan kod.

Kaedah teras untuk mengendalikan pengecualian dan kesilapan rakaman dalam aplikasi Laravel termasuk: 1. Gunakan Kelas Pengecualian APP \ Pengecualian untuk mengurus pengecualian yang tidak diasingkan, dan merekodkan atau memberitahu maklumat pengecualian melalui kaedah laporan (), seperti menghantar pemberitahuan Slack; 2. Gunakan monolog untuk mengkonfigurasi sistem log, tetapkan kaedah log dan output dalam config/logging.php, dan membolehkan ralat dan log peringkat di atas dalam persekitaran pengeluaran. Pada masa yang sama, maklumat pengecualian terperinci boleh direkodkan secara manual dalam laporan () dalam kombinasi dengan konteks; 3. Sesuaikan kaedah render () untuk mengembalikan tindak balas ralat format JSON bersatu, meningkatkan kecekapan kerjasama depan dan belakang API. Langkah -langkah ini adalah

Pengoptimuman prestasi Laravel dapat meningkatkan kecekapan aplikasi melalui empat arah teras. 1. Gunakan mekanisme cache untuk mengurangkan pertanyaan pendua, menyimpan data yang jarang berubah melalui cache :: ingat () dan kaedah lain untuk mengurangkan kekerapan akses pangkalan data; 2. Mengoptimumkan pangkalan data dari model ke pernyataan pertanyaan, elakkan pertanyaan n 1, menentukan pertanyaan medan, menambah indeks, pemprosesan paging dan pemisahan membaca dan menulis, dan mengurangkan kesesakan; 3. Gunakan operasi yang memakan masa seperti menghantar e-mel dan mengeksport fail ke pemprosesan asynchronous giliran, gunakan penyelia untuk menguruskan pekerja dan menubuhkan mekanisme semula; 4. Gunakan middleware dan penyedia perkhidmatan dengan munasabah untuk mengelakkan logik kompleks dan kod permulaan yang tidak perlu, dan kelewatan pemuatan perkhidmatan untuk meningkatkan kecekapan permulaan.
