cari
Rumahalat pembangunancomposerPenjelasan terperinci tentang cara Komposer Git mencipta 'perpustakaan kelas perkhidmatan'

Artikel ini ditulis oleh komposer ruangan tutorial untuk memperkenalkan kepada anda bagaimana Composer menggabungkan Git untuk mencipta "perpustakaan kelas perkhidmatan". Saya harap ia dapat membantu rakan-rakan yang memerlukan !

Pengenalan

Saya sentiasa percaya bahawa PHP kini telah berkembang ke dalam bidang kejuruteraan. Pada masa lalu, pembangun PHP menganggap kelajuan sebagai keindahan, dan kelajuan dan skala sentiasa bercanggah. Projek PHP hari ini, terutamanya projek yang lebih besar, telah berkembang secara beransur-ansur ke tahap yang memerlukan kedua-dua kejuruteraan dan skala. Kejuruteraan kod bermakna berkembang menjadi seni bina yang semakin kompleks. Untuk seni bina yang kompleks, perkhidmatan mikro selalunya merupakan pilihan yang baik.

Saya memerlukan soalan ini dalam projek baru-baru ini. Saya perlu membangunkan perkhidmatan peta Perkhidmatan ini sudah tentu bukan dalam bentuk perpustakaan kelas yang mudah, tetapi mempunyai pangkalan data sendiri dan antara muka perkhidmatannya sendiri. Dalam kes ini, pilihan terbaik ialah penservitan. Sudah tentu, terdapat banyak cara untuk melakukan perkhidmatan, seperti Thrift, HTTP, dll. Tetapi saya menilai persekitaran jabatan semasa PHP adalah bahasa arus perdana, dan kemajuan projek saya juga agak ketat Pada pandangan saya, Thrift, HTTP dan kaedah lain semuanya menggunakan protokol rangkaian untuk mencapai penyahgandingan perkhidmatan penyelesaian. Saya fikir pendekatan ini tidak perlu apabila projek itu tidak jelas dalam keadaan kritikal. Kelemahan menggunakan penservitian protokol rangkaian ialah ia memperkenalkan kerumitan yang ketara. Kerumitan ini selalunya bermakna pelaburan dalam tenaga kerja, sumber material dan masa. Jadi saya berharap dapat menyediakan "perpustakaan kelas perkhidmatan" dalam bahasa PHP untuk pembangunan.

Apa yang saya fikirkan ialah Komposer PHP.

Pengubahsuaian Komposer

Mencipta pustaka perkhidmatan

Pertama, saya perlu menukar "perpustakaan perkhidmatan" saya daripada aplikasi Saya (bernama xxx/main1) adalah bebas Untuk kebebasan ini, saya tidak memilih untuk mencipta direktori dalam aplikasi (malah, saya terfikir untuk membuat direktori seperti Perkhidmatan). Namun, jika kod tersebut digandingkan dengan program perniagaan, saya merasakan kerana kemalasan manusia, sukar untuk mengawal diri dari awal hingga akhir dan berkeras untuk tidak menggunakan pelbagai fungsi mudah dalam aplikasi. Jadi pilihan saya adalah untuk mencipta projek baharu dalam repositori Git dan namakannya xxx/mapService.

composer.json

Kini terdapat dua projek Git (xxx/main1 dan xxx/mapService saya menambah pernyataan berikut pada fail composer.json dalam main1:

Penjelasan terperinci tentang cara Komposer Git mencipta perpustakaan kelas perkhidmatan

Composer.json dalam mapService adalah seperti berikut:

Penjelasan terperinci tentang cara Komposer Git mencipta perpustakaan kelas perkhidmatan

Konfigurasi ini memberitahu projek main1 bahawa alamat Git mapService perlu digunakan versi.

Sudah tentu anda perlu memberi perhatian kepada perkara berikut:

  • dev-master bermaksud menggunakan secara langsung cabang induk mapService. Jika mapService mempunyai teg lain, anda boleh menggunakan maklumat teg di sini
  • repositori ialah alamat projek
  • Perkhidmatan yang saya ada di sini diletakkan pada GitLab yang dibina oleh syarikat kami
  • Ruang nama folder src di bawah mapService ialah xxxx\xxxx\MapService\ dan menyokong PSR-4
  • mapService menggunakan illuminate/database

Akhir sekali gunakan kemas kini komposer - vvv boleh memuat turun mapService yang kami perlukan dan letakkan dalam direktori vendor.

Kemas kini dan pengubahsuaian

Editor kami kini berada dalam projek utama1 Jika kami telah mengedit dan mengubah suai projek mapService, dan ingin menggabungkannya ke dalam cabang induk mapService , masukkan terus direktori vender/xxx/mapService dan lakukan operasi yang sepadan dengan Git. Ini membenarkan pengubahsuaian kod langsung.

Konfigurasi bebas

Gabungan struktur ini hanyalah langkah pertama dalam perarakan panjang. Apa yang lebih penting kemudian ialah apabila menulis perkhidmatan ini, saya perlu sentiasa ingat untuk tidak menggunakan segala-galanya dalam main1, untuk mengekalkan kebebasan mapService (kemerdekaan adalah salah satu syarat yang diperlukan untuk penservitan). Sebagai contoh, masalah pertama yang saya hadapi ialah fail konfigurasi perlu bebas.

Kaedah pelaksanaan saya ialah untuk mencipta kelas Config secara langsung dalam mapService, dan konfigurasi ditulis terus dalam kelas ini.

Saya sentiasa merasakan bahawa pelaksanaan fail konfigurasi ini agak mengecewakan, kerana dengan cara ini, fail konfigurasi ini memasuki perpustakaan Git. Tetapi saya benar-benar tidak dapat memikirkan penyelesaian yang lebih baik. Terdapat cara dalam Laravel untuk mencipta Config dalam folder konfigurasi Laravel dengan melaksanakan ServiceProvider, tetapi kaedah ini hanya digunakan untuk Laravel. Tiada kesejagatan. Sebaliknya, saya fikir pangkalan data yang digunakan oleh perkhidmatan itu sendiri adalah sebahagian daripada perkhidmatan itu, dan ia nampaknya tidak ada kena mengena dengan meletakkannya dalam perpustakaan Git perkhidmatan.

Struktur direktori

Penjelasan terperinci tentang cara Komposer Git mencipta perpustakaan kelas perkhidmatan

Struktur direktori adalah seperti di atas

  • Configs menyediakan fail konfigurasi
  • Kontrak menyediakan protokol antara muka
  • Pengecualian memberikan pengecualian
  • Sokongan menyediakan kaedah pihak ketiga atau perpustakaan kelas
  • Model menyediakan interaksi dengan pangkalan data
  • Pelaksanaan Node.php Antara muka khusus

Perkara yang paling penting tentang perkhidmatan ialah protokol antara muka. Jadi buat folder Kontrak dan antara muka perkhidmatan yang disediakan.

Penjelasan terperinci tentang cara Komposer Git mencipta perpustakaan kelas perkhidmatan

Pengendalian pengecualian antara muka harus cuba menggunakan pengecualian dan bukannya kod ralat untuk interaksi. Dan pengecualian ini harus disesuaikan sebanyak mungkin. Dengan cara ini, terdapat kemungkinan pemprosesan bersatu di peringkat atas.

Berfikir

Saya meletakkan model seni bina ini sebagai model berorientasikan perkhidmatan pada tahap kod PHP. Senario yang boleh digunakan hendaklah:

  • Penservitian yang dirancang kemudiannya
  • Senario di mana kedua-dua tenaga manusia dan pemikiran pada peringkat awal berharap dapat mengekalkan pembangunan pesat

dan Git Perbezaan antara SubTree dan SubModule

Malah, ketiga-tiga kaedah ini semuanya menggunakan satu projek sebagai perpustakaan kelas untuk projek lain. SubTree dan SubModule ialah penyelesaian Git. Komposer ialah penyelesaian untuk bahasa PHP Selain fungsi menambah projek ke projek lain, ia juga menyediakan penyelesaian seperti menambah versi dan penyelesaian pergantungan. Jika projek anda dalam PHP, maka menggunakan Composer sudah pasti merupakan pilihan yang lebih baik.

Servis protokol kemudiannya

Jika mapService saya mahu menjadi perkhidmatan protokol kemudian, maka projek mapService boleh dipermudahkan menjadi SDK Untuk logik perniagaan lapisan atas. Hanya gunakan kemas kini komposer untuk mengemas kini.

Pendaftaran dan penemuan perkhidmatan

Apa yang dipanggil "perpustakaan perkhidmatan" yang saya panggil di sini tidak menyelesaikan masalah pendaftaran perkhidmatan Saya tidak tahu berapa banyak projek menggunakan perkhidmatan saya. Ini mungkin memerlukan kerja proses tambahan.

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara Komposer Git mencipta 'perpustakaan kelas perkhidmatan'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:juejin. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Kelayakan Komposer: Apa yang menjadikan seseorang komposer?Kelayakan Komposer: Apa yang menjadikan seseorang komposer?Apr 14, 2025 am 12:13 AM

Unsur -unsur utama menjadi seorang komposer termasuk: 1. Menguasai Teori Muzik, 2.

Jalan untuk menjadi komposer: panduan praktikalJalan untuk menjadi komposer: panduan praktikalApr 13, 2025 am 12:11 AM

Langkah -langkah untuk menjadi komposer termasuk: 1. Menguasai unsur -unsur asas muzik, seperti nota, irama, keharmonian, dan melodi; 2. Pilih alat teknikal yang sesuai, seperti AbletonLive; 3. Memahami proses penyusunan, termasuk pengambilalihan inspirasi, konsepsi, penulisan, pengubahsuaian dan penambahbaikan; 4. Mulailah dengan penciptaan melodi yang mudah dan secara beransur -ansur mencuba teknik kompleks seperti keharmonian; 5. menyelesaikan masalah biasa melalui teknik debugging, seperti pemilihan nota dan susunan irama; 6. Memohon pengoptimuman prestasi dan amalan terbaik, seperti menggunakan templat, kawalan versi, dan kerjasama.

Komposer: Kunci untuk membina aplikasi PHP yang mantapKomposer: Kunci untuk membina aplikasi PHP yang mantapApr 12, 2025 am 12:05 AM

Komposer adalah alat utama untuk membina aplikasi PHP yang mantap kerana ia memudahkan pengurusan pergantungan, meningkatkan kecekapan pembangunan dan kualiti kod. 1) Komposer mentakrifkan kebergantungan projek melalui fail komposer.json dan memuat turun secara automatik dan menguruskan kebergantungan ini. 2) Ia menghasilkan fail komposer.lock untuk memastikan bahawa versi ketergantungan konsisten dan dimuat secara automatik melalui vendor/autoload.php. 3) Contoh penggunaan termasuk penggunaan asas seperti menambah perpustakaan log, serta penggunaan lanjutan seperti kekangan versi dan pengurusan pembolehubah persekitaran. 4) Teknik debugging kesilapan biasa termasuk pengendalian konflik ketergantungan dan masalah rangkaian. 5) Cadangan Pengoptimuman Prestasi termasuk menggunakan fail komposer.lock dan mengoptimumkan pemuatan automatik.

Kepakaran Komposer: Apa yang menjadikan seseorang mahirKepakaran Komposer: Apa yang menjadikan seseorang mahirApr 11, 2025 pm 12:41 PM

Untuk menjadi mahir apabila menggunakan komposer, anda perlu menguasai kemahiran berikut: 1. Berfungsi dalam menggunakan komposer.json dan komposer.lock fail, 2.

Apa yang dilakukan oleh komposer?Apa yang dilakukan oleh komposer?Apr 08, 2025 am 12:19 AM

Komposer adalah alat pengurusan ketergantungan untuk PHP, yang digunakan untuk mengisytiharkan, memuat turun dan mengurus kebergantungan projek. 1) Mengisytiharkan kebergantungan melalui fail composer.json, 2) Pasang kebergantungan menggunakan perintah komposerinstall, 3) menghuraikan pokok pergantungan dan memuat turunnya dari pembungkus, 4) menghasilkan fail autoload.php untuk memudahkan pemuatan automatik, 5) Mengoptimumkan penggunaan termasuk menggunakan composerupdate-prefer-dist dan penyesuaian autoload.

Apakah komposer aplikasi?Apakah komposer aplikasi?Apr 07, 2025 am 12:07 AM

AppComposer adalah alat untuk membina dan menguruskan aplikasi. 1) Ia memudahkan pembangunan aplikasi dan meningkatkan kecekapan dengan menyeret dan mengkonfigurasi komponen yang telah ditetapkan. 2) Pemaju boleh menentukan komponen, menggabungkan antara muka, menentukan logik perniagaan, dan akhirnya menjadikan permohonan itu. 3) Menyokong penggunaan asas dan maju, seperti pengurusan tugas dan rendering bersyarat, membantu membina aplikasi yang fleksibel.

Untuk apa komposer digunakan?Untuk apa komposer digunakan?Apr 06, 2025 am 12:02 AM

Komposer adalah alat pengurusan ketergantungan untuk PHP. Langkah-langkah teras menggunakan komposer termasuk: 1) mengisytiharkan kebergantungan dalam komposer.json, seperti "jalur/jalur-php": "^7.0"; 2) Jalankan ComposerInstall untuk memuat turun dan mengkonfigurasi kebergantungan; 3) Menguruskan versi dan autoload melalui komposer.lock dan autoload.php. Komposer memudahkan pengurusan pergantungan dan meningkatkan kecekapan projek dan penyelenggaraan.

Apa itu komposer ai?Apa itu komposer ai?Apr 05, 2025 am 12:13 AM

Composerai adalah alat berasaskan kecerdasan buatan untuk menjana dan mengoptimumkan kod untuk meningkatkan kecekapan dan kualiti pembangunan. Fungsinya termasuk: 1. Generasi Kod: Menjana coretan kod yang memenuhi piawaian mengikut keperluan. 2. Pengoptimuman Kod: Dengan menganalisis kod sedia ada, buat cadangan pengoptimuman. 3. Ujian Automatik: Menjana kes ujian untuk memastikan kualiti kod.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini