Composer, isang administrator upang mag-install ng mga dependency sa mga proyekto sa PHP

Ilang araw na ang nakakalipas ang paglulunsad ng bagong bersyon ng Composer 2.0 ay inihayag, na isang administrator upang mag-install ng mga dependency sa mga proyekto sa PHP.

kompositor, namumukod sa pinapayagan sa gumagamit ang tukuyin kung aling mga aklatan ang kinakailangan upang gumana ang proyekto, at pagkatapos ay alagaan ang gawain ng pag-install ng mga nawawalang dependency at pag-update ng mga bagong bersyon.

Ang mga aklatan na magagamit para sa pag-install ay nasa lalagyan ng Packagist, na naglalaman ng higit sa 287 libong mga pakete.

Tungkol sa Composer

Ang kompositor ay nakaposisyon bilang isang sistema ng pag-install ng dependency dinisenyo kasama ang mga tagapamahala ng npm at bundler package nasa isip sa mga pamayanan ng Node.js at Ruby.

Ang system nagpapatakbo ng mga pakete na may kaugnayan sa mga tiyak na proyekto at ito ay dinisenyo upang mai-install ang mga dependency sa mga lokal na direktoryo ng proyekto (bilang isang pagpipilian, mayroon ding isang pandaigdigang mode ng pag-install para sa buong system).

Bilang default, iminungkahi ang matatag na pag-install ng library, ngunit posible ring gumamit ng mga pang-eksperimentong pag-update (alpha / beta) at mga snapshot (snapshot ng codebase ng pag-unlad), na kapaki-pakinabang para sa pag-aayos ng mga pagbuo ng pagsubok sa patuloy na mga system ng pagsasama.

Ang Composer code ay nakasulat sa PHP at ipinamamahagi sa ilalim ng lisensya ng MIT.

Tungkol sa bagong bersyon ng Composer 2.0

Sa bagong bersyon nagawa ang mga pangunahing pag-optimize sa pagganap at ang pagkonsumo ng memorya ay nabawasan. Marami na ang muling binago, mula sa protocol na tumawag sa packagist.org pababa sa mga pamamaraan para sa pagtukoy ng mga dependency.

Ang pag-upload ay ibinibigay sa iba't ibang mga metadata stream at zip file, kasama ang mode ng parallel na pag-install ng mga pakete ay ipinatupad. Ang mga pag-optimize ay naidagdag sa code para sa mga kalkulasyon. Sa pamamagitan lamang ng pag-upload ng metadata ng package, nangangailangan at / o alisin ang mga pagpapatakbo at bahagyang pag-update ay makabuluhang napabilis. Sa ilang mga proyekto isang pagmamasid ng hanggang sa 50% ay sinusunod.

Ang mekanismo para sa pag-update ng mga dependency ay muling binago, na walang mga bindings sa estado ng direktoryo sa lokal na file system. Matapos makumpleto ang pag-update, ang proseso ng pag-install ay awtomatikong nagsisimula sa paunang pagpapatupad ng lahat ng mga operasyon na nangangailangan ng pag-access sa network.

Ang pagsasagawa ng mga pagpapatakbo ng network bago magsimula ang tunay na pag-install ay tinatanggal ang hitsura ng hindi kumpletong na-update na mga direktoryo sa kaganapan ng pagkabigo sa network sa panahon ng proseso ng pag-install. Kailanman posible, ang mga pag-download sa network ay maraming sinulid.

Bilang default, isang karagdagang yugto ng pag-verify ng platform ay idinagdag sa runtime kapag nagpapasimula sa vendor / autoload.php, kung saan suriin na ang bersyon ng PHP at mga extension ginamit na tumutugma sa mga bersyon na suportado sa mga dependency. Kung mayroong isang pagkakaiba, ipapakita ang isang error.

Ginagawa ang pagpapatunay gamit ang bagong klase ng Composer \ InstalledVersions, na na-load para sa bawat proyekto upang matukoy kung anong mga pakete at bersyon ang magagamit sa proyekto.

Bukod pa rito, nabanggit na muling binago ang mga mensahe ng error na nauugnay sa mga isyu sa pagtuklas ng dependency. Ang mga mensahe na ito ay mas maikli, mas malinaw, at may mas kaunting mga duplicate.

Para pansamantalang limitahan ang mga bersyon sa panahon ng pag-update, gamitin ang konstruksyon na "I-update ng kompositor ang vendor / package: 1.0. * ", Alin ang hindi magbabago ng nilalaman ng block sa" composer.json at hindi mamarkahan ang naka-lock na file bilang lipas na.

Sa iba pang mga pagbabago na tumatayo sa bagong bersyon na ito:

  • Nagdagdag ng suporta para sa limitadong oras na bahagyang mga pag-update, na maaaring magamit kapag kailangan mong pansamantalang i-update o i-roll back ang isang bersyon ng isang pakete upang subukan o maghintay para sa isang pag-aayos ng bug. Ang awtomatikong pagtanggal ng mga pakete na hindi na kinakailangan ay naipatupad.
  • Ang mga bagong pagpipilian, pagbubukod at canonical ay naidagdag sa lalagyan.
  • Ang mga bagong kaganapan ay idinagdag bago ang pagpapatakbo, pagpapatupad, paglikha ng pre-group, at file na post-download.
  • Ang isang malaking bilang ng mga bagong flag ay naidagdag.

Panghuli, kung interesado kang malaman ang higit pa tungkol sa bagong bersyon, maaari kang kumunsulta sa mga detalye Sa sumusunod na link.

Sa kabilang banda, kung nais mong kumunsulta sa dokumentasyon, magagawa mo ito mula sa link na ito.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.