Composer ir PHP atkarības pārvaldības rīks. Varat norādīt, no kurām bibliotēkām (paketēm) ir atkarīgs jūsu projekts, un komponists tās instalēs jūsu vietā. Composer ir atkarību pārvaldnieks, nevis pakotņu pārvaldnieks - tas nozīmē, ka bibliotēkas (paketes) tiek instalētas katrā projektā atsevišķi, nevis globāli sistēmā.

Kāpēc jums ir nepieciešams komponists?

PHP pasaulē ir tendence atkal un atkal izgudrot riteni. Tas ir saistīts ar to, ka kādu laiku nebija ērta atkarības pārvaldnieka un vieta, kur varēja atrast piemērotus risinājumus. Trešo pušu bibliotēku instalēšana bieži vien bija saistīta ar nepieciešamību meklēt un instalēt citas bibliotēkas. Tā rezultātā dažreiz bija vieglāk uzrakstīt savu bibliotēku, nevis instalēt un uzturēt kāda cita bibliotēku.
Composer novērš atkarību problēmas, un, pateicoties oficiālajam packagist.org repozitorijam, vajadzīgās pakotnes atrašana ir ātra un vienkārša.

Kā darbojas komponists

Komponista ideja nav jauna, to izstrādājot, idejas ņēmām no pakotņu pārvaldnieka node.js - npm un Bundler - pārvaldnieka rubīna lietojumprogrammu atkarību pārvaldībai.

  1. Jūsu projekts ir atkarīgs no vairākām bibliotēkām
  2. Dažas no šīm bibliotēkām ir atkarīgas no citām bibliotēkām.
  3. Jūs tieši norādāt, kuras bibliotēkas jums ir vajadzīgas
  4. Composer atrod vajadzīgās jums nepieciešamo versiju bibliotēkas un instalē tās (projekta mapē), pa ceļam instalējot bibliotēkas, kas nepieciešamas šo bibliotēku darbībai.

Kur atrast iepakojumus

Pēc noklusējuma pakotnes tiek lejupielādētas no oficiālā packagist.org repozitorija. Ikviens tur var pievienot pakotni vai lejupielādēt to.
Varat arī lejupielādēt pakotnes tieši no jebkuras git, svn vai Mercurial repozitorija, vai arī tas var būt tikai zip arhīvs, kas pieejams jebkurā adresē.
Instalējamajai bibliotēkai nav jābūt Composer pakotnes formā.

Atkarību deklarēšana

Pieņemsim, ka veidojat projektu un jums ir nepieciešama mežizstrādes bibliotēka. Jūs nolemjat izmantot monologu. Viss, kas jums nepieciešams, lai to pievienotu projektam, ir komponists.json fails, kas apraksta projekta atkarības.

( "nepieciešams": ( "monologs/monologs": "1.2.*" ) )

Mēs vienkārši norādām, ka mūsu projektā ir jāinstalē monologa/monologa pakotne jebkurai versijai, kas sākas ar 1.2 (piemēram, 1.2.1, 1.2.2 utt.)

Lasiet vairāk par Composer funkcijām un lietošanu turpmākajās nodarbībās.

Sveiki visiem. Šodien mēs runāsim par kas ir pakotņu pārvaldnieki, un apsveriet vienu no tiem - komponists.

Pirmkārt, izdomāsim, kas mums ir nepieciešams pakotņu pārvaldnieki? Pakešu pārvaldnieki palīdz lejupielādēt visas paketes, atkarības, dažus ietvarus, spraudņus, ko izmanto programmēšanas valoda, izmantojot konsoli tikai pāris rindiņās. Mūsu gadījumā komponists-Šo php pakotņu pārvaldnieks.

Lai parādītu, kā darbojas komponists, lejupielādēsim yii ietvars

Tāpēc dodieties uz vietni http://getcomposer.org/ un nospiediet pogu "Darba sākšana". Tagad noklikšķiniet Uzstādīšana - *nix lai to iestatītu Mac vai Linux. Atveriet termināli un ielīmējiet šādas komandas:

1) $ curl -sS https://getcomposer.org/installer | php

2) $ mv composer.phar /usr/local/bin/composer

Kad esat paveicis visu, ievadiet komandu komponists un ja jums ir liels uzraksts KOMPONISTS un kādu informāciju, tad jūs visu izdarījāt pareizi un komponists veiksmīgi instalēts.

lai instalētu komponists ieslēgts Windows, sekojiet šai saitei https://getcomposer.org/doc/00-intro.md#installation-windows un lejupielādējiet instalēšanas programmu. Ja instalēšanas laikā rodas bibliotēkas kļūdas, vienkārši atveriet failu php.ini un atspējojiet tās bibliotēkas, kuras neļauj instalēt komponista pakotņu pārvaldnieks.

Pēc komponists instalēta, dodieties uz darbvirsmu un izveidojiet mapi ar nosaukumu "komponists". Tagad konsolē dodieties uz to

CD darbvirsma/komponists/

Lai inicializētu komponistu, ievadiet komandu

Komponista init

Kāda jēga? Būtība ir tāda, ka, uzsākot jaunu projektu, jums nav jāsērfo tīmeklī un jālejupielādē viss nepieciešamais. Vienkārši ievadiet komandu konsolē, un viss tiek automātiski lejupielādēts. Vēl viens plus ir tas, ka dažas bibliotēkas ir atkarīgas no citām bibliotēkām, taču jums par to vairs nav jāuztraucas, jo. komponists tos arī lejupielādēs. Lielos projektos tas ir ļoti ērti tādā ziņā, ka, ja, piemēram, atnāk jauns darbinieks, tad viņam nav jāskaidro, ko un no kurienes lejupielādēt. Tu vienkārši dod viņam json failu, viņš ievadīs komandu konsolē, un viss tiks instalēts.

Turpināsim mūsu ietvara uzstādīšanu. Kā jau teicu, mēs ieejam

Meklēt paketi:

Šeit ievadiet mūsu sistēmas nosaukumu

Meklēt paku: yii

Jūsu priekšā redzēsit visas atrastās atbilstības komponists. Mūsu vajadzība yiisoft/yii Numurs kvadrātiekavās kreisajā pusē. Manā gadījumā tā ir 0 , es to ierakstu un nospiediet enter. Tālāk mums jāievada versija. Un no kurienes komponists to visu lejupielādē? Ir vietne, kurā tiek glabāts daudz lietu - http://packagist.org/ Tur ievadiet meklēšanas joslā yii un seko pirmajai saitei, tur redzēsi, ka versija ir izsaukta dev-master. Ievadiet šo konsolē un nospiediet taustiņu Enter.

Vai jūs ierobežojat paaudzi?

Virs šī paraksta varat redzēt, kā izskatās fails. komponists.json. Tas ir tieši tas pats fails, ko jūs piešķirat jaunam darbiniekam.

Tātad, viss mums atbilst, mēs nospiežam enter.

Tagad, ja dodaties uz mūsu darbvirsmas mapi komponists, jūs redzēsiet, ka mūsu json failu.

Tagad ievadiet komandu konsolē

Komponista instalēšana

Kad instalēšana būs pabeigta, mūsu darbvirsmas mapē parādīsies jauna mape ar nosaukumu pārdevējs, kurā tiek glabāti visi mūsu sistēmas faili.

Ar to ir tik viegli strādāt komponista pakotņu pārvaldnieks, un pats galvenais, tagad jums nav jālejupielādē viss manuāli. Pietiek to izdarīt vienu reizi json failu un pēc tam vienkārši izmantojiet to, lai lejupielādētu un instalētu nepieciešamos ietvarus, spraudņus, bibliotēkas un daudz ko citu.

Composer ir mainījis PHP pakotņu pārvaldību un ir palīdzējis izstrādātājiem visā pasaulē izveidot no sistēmas neatkarīgu un kopīgu kodu. Bet tomēr daži cilvēki pārsniedz tā funkcionalitātes pamatus, tāpēc šajā rakstā tiks mēģināts izcelt dažus noderīgus trikus tā lietošanai.

Globālā instalēšana (globāla)

Lai gan šī opcija ir viegli pieejama dokumentācijā, Composer var (un vairumā gadījumu vajadzētu) instalēt globāli. Globālā instalēšana nozīmē, ka tā vietā, lai:

php composer.phar somecommand
Jebkurā projektā varat vienkārši ierakstīt:

Komponējiet kādu komandu
Tādējādi ir ļoti viegli izveidot jaunus projektus (piemēram, izmantojot komandu izveidot-projekts) jebkurā vietā jūsu failu sistēmā.

Lai instalētu Composer globāli, izpildiet šos norādījumus.

Pareiza atkarību uzstādīšana

Lasot ievada instrukcijas vai README failus, daudzi jums rakstīs kaut ko līdzīgu:
Vienkārši pievienojiet tālāk norādīto failu savam composer.json failu:
( "require": ( "mans projekts": "someversion" ) )

Bet šai pieejai ir vairāki trūkumi. Pirmkārt, vienkārša kopēšana un ielīmēšana var izraisīt kļūdas. Otrkārt, iesācējam var nebūt skaidrs, kur ievietot šo kodu, ja viņam jau ir liels fails komponists.json, un tas arī radīs kļūdu. Visbeidzot, daži cilvēki pirmo reizi sazināsies ar Composer un, iespējams, pirmo reizi saskarsies ar komandrindu. Tāpēc ir laba prakse aptvert visdažādākos gadījumus, kad iesācēji var justies nedroši (vai viņiem ir grafiskais redaktors vai arī viņi izmantos komandrindu? Ja pēdējā, vai tajā ir instalēts teksta redaktors, un, ja jā, tad kurš vienu? Vai jūs izskaidrojat faila rediģēšanas procedūru? Ko darīt, ja fails composer.json projektā jau nepastāv? Vai jūs arī aprakstāt, kā izveidot jaunu failu?).

Labākais veids, kā failam pievienot jaunu atkarību komponists.json ir izmantot komandu pieprasīt:

Komponists pieprasa somepackage/somepackage:someversion
Tādējādi atkarības failam tiks pievienots viss nepieciešamais bez manuālas iejaukšanās.

Ja sadaļai jāpievieno pakotnes prasīt-dev, pievienojiet komandai opciju --dev:

Komponists pieprasa phpunit/phpunit --dev
Arī komanda pieprasīt atbalsta vairāku pakotņu pievienošanu vienlaikus, vienkārši atdaliet tās ar atstarpi.

Bloķēt failus

Fails komponists.slēdzene saglabā pašreizējo instalēto atkarību sarakstu un to versijas. Tādā veidā līdz brīdim, kad atkarības versijas būs atjauninātas, citiem lietotājiem, kuri klonēs jūsu projektu, būs tādas pašas versijas. Tas nodrošina, ka ikvienam, kas saņem jūsu projektu, ir identiska “iepakošanas vide” tai, kuru izmantojāt izstrādes laikā, un palīdz izvairīties no kļūdām, kas varētu rasties versiju atjauninājumu dēļ.

Arī fails komponists.slēdzene satur faila jaucējkodu komponists.json, tādēļ, ja pat vienkārši atjaunināsit projekta autora informāciju, jūs saņemsit brīdinājumu, ka bloķēšanas fails neatbilst .json failu. Šajā gadījumā komanda palīdzēs komponista atjauninājums --lock, kas atjauninās tikai pašu bloķēšanas failu, nepieskaroties nekam citam.

Versionēšana

Norādot derīgas pakotnes versijas, varat izmantot precīzu atbilstību ( 1.2.3 ), diapazoni ar salīdzināšanas operatoriem ( <1.2.3 ), šo operatoru kombinācijas ( >1.2.3 <1.3 ), “pēdējais pieejams” ( 1.2.* ), tildes rakstzīme ( ~1.2.3 ) un caret ( ^1.2.3 ).

Pēdējās divas norādes ir pelnījušas atsevišķu skaidrojumu:

  • tildes norāde ( ~1.2.3 ) ietvers visas versijas līdz 1.3 (neieskaitot), jo semantiskajā versijā tas ir jaunas funkcionalitātes ieviešanas mērķis. Šajā gadījumā tiks iegūta pēdējā no stabilajām mazajām versijām. Kā teikts dokumentācijā, ar šo norādi, tikai versijas pēdējais cipars.
  • norādot zīmi ( ^1.2.3 ) burtiski nozīmē “uzmanieties tikai no izmaiņu pārkāpšanas” un ietvers versijas līdz 2.0 . Attiecībā uz semver lielas versijas izmaiņas ir vieta, kurā projektā notiek būtiskas izmaiņas, lai versijas 1.3 , 1.4 Un 1.9 der, kamēr 2.0 - vairs ne.
Ja vien nezināt, ka jums ir nepieciešama konkrēta pakotnes versija, iesaku vienmēr izmantot formātu ~1.2.3 ir drošākā izvēle.

Vietējā un globālā konfigurācija

Parametru noklusējuma vērtības nav iekaltas. Detalizēts iespējamo konfigurācijas parametru apraksts ( konfigurācija) skatiet saiti.

Piemēram, norādot:
( "config": ( "optimize-autoloader": true ) )
jūs piespiežat Composer optimizēt klases karti pēc katras pakotņu instalēšanas vai atjaunināšanas (vai, citiem vārdiem sakot, ikreiz, kad tiek ģenerēts klases automātiskās ielādes fails). Tas ir nedaudz lēnāks nekā noklusējuma automātiskā ielādētāja izveide, un tas palēninās, projektam augot.

Vēl viena noderīga iespēja varētu būt cache-faili-maksimālais lielums. Lielos projektos (piemēram, eZ Publish vai Symfony) kešatmiņa var piepildīties diezgan ātri. Palielinot kešatmiņas lielumu, Composer varēs ātri darboties ilgāk.

Ņemiet vērā, ka konfigurācijas opcijas var iestatīt globāli, un tādā gadījumā tās ietekmēs visus projektus (skatiet konfigurāciju). Piemēram, lai globāli iestatītu kešatmiņas lieluma parametru, fails ir jārediģē ~/.composer/config.json vai palaist:

Komponista konfigurācija — globālā kešatmiņa-faili-maksimālais izmērs "2048MiB"

Profilēšana un detalizēta izvade (detalizēta)

Ja pievienojat parametru --profils uz jebkuru komandu, ja komandrindā izmantojat Composer, tad izvadē būs ne tikai gala rezultāts, piemēram:

Atmiņas lietojums: 174,58 MB (maksimālais apjoms: 513,47 MB), laiks: 54,7 s
Bet tas arī pievienos komandas izpildes laiku un izmantoto atmiņas lielumu katras izvades rindas sākumam:

Sensio\Bundle\DistributionBundle līdzekļu instalēšana tīmeklī/komplektos/sensiodistribution
Es izmantoju šo opciju, lai identificētu "lēnas" pakotnes un skatītu, kā uzlabojas vai pasliktinās veiktspēja.

Tāpat kā iepriekšējais, parametrs -- daudzrunīgs liks Composer izvadīt vairāk informācijas par katrs operāciju, kas tiek veikta, informējot jūs par to tieši tāšobrīd notiek. Daži cilvēki pat instalē komponists --verbose --profils komandas aizstājvārds komponists noklusējuma.

Pielāgoti avoti

Ja jūsu projekts vēl nav pieejams pakalpojumā Packagist, dažreiz jums vienkārši jāinstalē pakotne no GitHub (piemēram, ja pakotne joprojām tiek izstrādāta). Skatiet mūsu ceļvedi par to.

Kad jums ir populāras pakotnes versiju, no kuras ir atkarīgs jūsu projekts, varat izmantot pielāgotus avotus apvienojumā ar iekļauto aizstājvārdu, lai aizstātu savu filiāli ar publisku pakotni, piemēram, Matthieu Napoli.

Paātrinājuma komponists

Izmantojot Mark Van Eijk aprakstīto lielisko metodi, varat paātrināt Composer, izsaucot to, izmantojot HHVM.

Vēl viens veids ir ar parametru --vēlams-dist, kas liks Composer lejupielādēt stabilas, iepakotas projekta versijas, nevis klonēšanu no avota vadības (kas ir daudz lēnāks). Šī opcija tiek izmantota pēc noklusējuma, tāpēc jums tā nav jāiespējo stabilos projektos. Ja jums ir jāielādē projekts no avota, izmantojiet opciju --vēlams avots. Vairāk par to var atrast sadaļā uzstādīt .

Komponista projekta lieluma samazināšana

Ja esat "Komponistam draudzīgu" projektu izstrādātājs, šī daļa arī jūs interesēs. Saskaņā ar šo ziņu vietnē Reddit varat izmantot failu .gitattributes Ignorējiet dažus failus un mapes, iesaiņojot pakotni režīmam --vēlams-dist.
/docs export-ignore /tests export-ignore /.gitattributes export-ignore /.gitignore export-ignore /.travis.yml export-ignore /phpunit.xml export-ignore
Kā tas strādā? Kad augšupielādējat projektu vietnē GitHub, saite automātiski kļūst pieejama Lejupielādēt zip, ar kuru varat lejupielādēt sava projekta arhīvu. Turklāt Packagist izmanto šos automātiski ģenerētos arhīvus, lai ar šo opciju lejupielādētu atkarības --vēlams-dist, ko tas pēc tam lokāli izpako (daudz ātrāk nekā oriģinālo projekta failu klonēšana). Ja pievienojat .gitattributes testus, dokumentāciju un citus failus, kas nav saistīti ar projekta loģiku, norādītajos arhīvos tie nebūs, kļūstot daudz vieglāk.

Tajā pašā laikā cilvēki, kuri gribu lai atkļūdotu bibliotēku vai palaistu testus, jums būs jānorāda parametrs --vēlams avots.

PhpLeague ir izmantojusi šo pieeju un iekļāvusi to savā "pakas skelets"(Pakotnes skelets), lai jebkurš projekts, kas balstīts uz to, automātiski būtu dist draudzīgs.

parādīt

Ja pēkšņi aizmirstat, kuru PHP versiju vai tās paplašinājumu izmantojat, vai jums ir nepieciešams visu instalēto projektu saraksts (ar katra aprakstu) ar to versijām, varat izmantot komandu parādīt ar parametriem -- platforma (-lpp) Un --instalēts (-i):

komponistu izrāde --instalēta

$ komponista šovs --instalēts behat/behat v3.0.15 uz scenāriju orientēts BDD ietvars PHP 5.3 behat/gherkin v4.3.0 Gherkin DSL parsētājs PHP 5.3 behat/mink v1.5.0 Web pieņemšanas testēšanas ietvars PHP 5.3 behat/mink-browserkit -driver v1.1.0 Symfony2 BrowserKit draiveris Mink framework behat/mink-extension v2.0.1 Mink paplašinājums Behat behat/mink-goutte-driver v1.0.9 Goutte draiveris Mink framework behat/mink-sahi-driver v1.1.0 Sahi. JS draiveris Mink framework behat/mink-selenium2-driver v1.1.1 Selenium2 (WebDriver) draiveris Mink framework behat/sahi-client dev-master ce7bfa7 Sahi.js klients PHP 5.3 behat/symfony2-extension v2.0.0 Symfony2 framework paplašinājumam priekš Behat behat/transliterator v1.0.1 String transliterator komponentes/bootstrap 3.3.2 Populārākais priekšgala ietvars adaptīvu, mobilo pirmo projektu izstrādei tīmeklī. komponenti/jquery 2.1.3 jQuery JavaScript bibliotēkas doktrīna/anotācijas v1.2.4 Docblock Anotācijas Parsētāja doktrīna/kešatmiņa v1.4.1 Kešatmiņas bibliotēka piedāvā uz objektu orientētu API daudzām kešatmiņas aizmugursistēmām doctrine/collections v1.3.0 Collections/com library v doctrine. 5.0 Common Library for Doctrine Projects doctrine/dbal v2.5.1 Database Abstraction Layer doktrīna/doctrine-bundle v1.4.0 Symfony DoctrineBundle doktrīna/doctrine-cache-bundle v1.0.1 Symfony2 Bundle ar doktrīnas/dbal 1.0.0. attiecībā uz burtiem un vienskaitļa/daudzskaitļa noteikumiem. doctrine/instantiator 1.0.4 Neliela, viegla utilīta, lai izveidotu PHP objektus, neizsaucot to konstruktorus. doctrine/lexer v1.0.1 Lexer bāzes bibliotēka, ko var izmantot no augšas uz leju, rekursīvās nolaišanās parsētājiem. egulias/listeners-debug-command-bundle 1.9.1 Symfony 2 konsoles komanda, lai atkļūdotu klausītājus ezsystems/behatbundle dev-master bd95e1b Behat komplekts, lai palīdzētu testēt eZ komplektus un projektus ezsystems/comments-bundle dev-master sistēmai 8f95b. /demobundle dev-master c13fb0b Demo komplekts eZ Publish Platform ezsystems/demobundle-data v0.1.0 Dati par ezsystems/demobundle ezsystems/ezpublish-kernel dev-master 3d6e48d eZ Publish API un kodolu. Šī ir eZ Publish 5 būtība. ezsystems/platform-ui-assets-bundle v0.5.0 Ārējo līdzekļu atkarības platformai PlatformUIBundle ezsystems/platform-ui-bundle dev-master 4d0442d eZ Platform UI Bundle ezsystems/privacy-cookie-bundle v0. 1 konfidencialitātes sīkfailu reklāmkaroga integrācijas komplekts eZ Publish/eZ Platform fabpot/goutte v1. 0.7 Vienkāršs PHP Web Scraper friendsofsymfony/http-cache 1.3.1. Rīki, lai pārvaldītu kešatmiņas nederīgumu friendsofsymfony/http-cache-bundle 1.2.1. Iestatiet uz ceļu balstītas HTTP kešatmiņas galvenes un nosūtiet anulēšanas pieprasījumus uz jūsu HTTP kešatmiņas guzzle/guzzle v3.9.3 PHP HTTP klients. Šī bibliotēka ir novecojusi par labu https://packagist.org/packages/guzzlehttp/guzzle hautelook/templated-uri-bundle 2.0.0 Symfony2 Bundle, kas nodrošina ar RFC-6570 saderīgu maršrutētāju un URL ģeneratoru. hautelook/templated-uri-router 2.0.1 Symfony2 RFC-6570 saderīgs maršrutētājs un URL ģenerators, iedomājieties/imagine 0.6.2 Attēlu apstrāde PHP 5.3 incenteev/composer-parameter-handler v2.1.0 Komponista skripts, kas apstrādā jūsu ignorēto parametru failu instaclick/php -webdriver 1.0.17 PHP WebDriver for Selenium 2 jdorn/sql-formatter v1.2.17 a PHP SQL izcelšanas bibliotēka knplabs/knp-menu v1.1.2 Objektorientēta izvēļņu bibliotēka knplabs/knp-menu-bundle v1.1.2 nodrošina šo komplektu KnpMenu bibliotēkas integrācija kriswallsmith/assetic v1.2.1 Asset Management for PHP kriswallsmith/buzz v0.13 Lightweight HTTP klienta līga/flysystem 0.5.12 Daudzas failu sistēmas, viena API. liip/imagine-bundle 1.2.6 Šis komplekts palīdz iztēloties manipulācijas, izmantojot Imagine bibliotēkas monologu/monologu 1.13.1 Nosūta jūsu žurnālus uz failiem, ligzdām, iesūtnēm, datu bāzēm un dažādiem tīmekļa pakalpojumiem nelmio/cors-bundle 1.3.3 Pievieno CORS ( Cross-Origin Resource Sharing) galvenes atbalsts jūsu Symfony2 lietojumprogrammā ocramius/proxy-manager 0.5.2 Bibliotēka, kas nodrošina utilītas, lai ģenerētu, momentizētu un vispārīgi darbotos ar Object Proxies oneup/flysystem-bundle v0.4.2 Integrē Flysystem failu sistēmas abstrakcijas bibliotēku jūsu Symfony2. projektu. pagerfanta/pagerfanta v1.0.3 Lapu piešķiršana PHP 5.3 phpdocumentor/reflection-docblock 2.0.4 phpspec/prophecy v1.4.1 Izsmejošs ietvars PHP 5.3+ versijai phpunit/php-code-coverage 2.0.16, kas nodrošina kolekciju, apstrādi un bibliotēku PHP koda pārklājuma informācijas renderēšanas funkcionalitāte. phpunit/php-file-iterator 1.4.0 FilterIterator ieviešana, kas filtrē failus, pamatojoties uz sufiksu sarakstu. phpunit/php-text-template 1.2.0 Vienkārša veidņu programma. phpunit/php-timer 1.0.5 Lietderības klase laika noteikšanai phpunit/php-token-stream 1.4.1 Iesaiņojums ap PHP marķiera paplašinājumu phpunit/phpunit 4.6.4 PHP vienības testēšanas ietvars. phpunit/phpunit-mock.3 Objects1 Mock Object bibliotēka PHPUnit psr/log 1.0.0 Kopīgs interfeiss bibliotēku reģistrēšanai qafoo/rmf 1.0.0 Ļoti vienkāršs VC ietvars, kas ļauj viegli izveidot HTTP lietojumprogrammas / REST tīmekļa pakalpojumus sebastian/comparator 1. 1.1 Nodrošina funkcionalitāti, lai salīdzinātu PHP vērtības vienlīdzībai sebastian/diff 1.3.0 Diff implementācija sebastian/environment 1.2.2 Nodrošina funkcionalitāti, lai apstrādātu HHVM/PHP vidi sebastian/exporter 1.2.0 Nodrošina funkcionalitāti PHP mainīgo eksportēšanai vizualizācijai sebastian /global -state 1.0.0 Globālā stāvokļa momentuzņēmums sebastian/recursion-context 1.0.0 Nodrošina funkcionalitāti, lai rekursīvi apstrādātu PHP mainīgos sebastian/version 1.0.5 Bibliotēka, kas palīdz pārvaldīt Git mitināto PHP projektu versijas numuru sensio/distribution- komplekts v3 .0.21 Pamata komplekts Symfony Distributions sensio/framework-extra-bundle v3.0.7 Šis komplekts nodrošina veidu, kā konfigurēt kontrolierus ar anotācijām sensio/generator-bundle v2.5.3 Šis komplekts ģenerē kodu sensiolabs/security-checker v2. .0.2 Drošības pārbaudītājs jūsu komponistam.lock swiftmailer/swiftmailer v5.4.0 Swiftmailer, bezmaksas ar funkcijām bagāts PHP mailer symfony-cmf/routing 1.3.0 Paplašina Symfony2 maršrutēšanas komponentu dinamiskiem maršrutiem un vairāku maršrutētāju ķēdes savienošanai symfony/assetic-bundle v2.6.1 tedivm/stash v0.12.3 Vieta, kur glabāt kešatmiņu. tedivm/stash-bundle v0.4.2 Iekļauj atlicināt kešatmiņas bibliotēku Symfony. twig/extensions v1.2.0 Izplatītas papildu funkcijas programmai Twig, kas tieši neietilpst galvenajā twig/twig v1.18.1 Twig, elastīgā, ātrā un drošā veidņu valoda PHP white-october/pagerfanta-bundle v1.0.2 komplektam. Pagerfanta ar Symfony2 whiteoctober/breadcrumbs-bundle 1.0.2. Neliels rīvmaiņu komplekts Symfony2 zendframework/zend-code 2.2.10 nodrošina iespējas ģenerēt patvaļīgu kodu, izmantojot objektorientētu interfeisu zendframework/zend-eventmanager 2.2.2.1.d.dframework. .10 zetacomponents/base 1.9. Pamata pakotne nodrošina pamata infrastruktūru, uz kuru balstās visas pakotnes. Tāpēc katra sastāvdaļa ir atkarīga no šīs paketes. zetacomponents/feed 1.4 Šis komponents apstrādā RSS1, RSS2 un ATOM plūsmu parsēšanu un izveidi ar dažādu plūsmas moduļu atbalstu (līdzstrāvas, satura, creativeCommons, geo, iTunes). zetacomponents/mail 1.8.1. Komponents ļauj konstruēt un/vai parsēt pasta ziņojumus, kas atbilst pasta standartam. Tam ir atbalsts pielikumiem, vairāku daļu ziņojumiem un HTML pastam. Tas arī saskaras ar SMTP, lai nosūtītu pastu vai IMAP, P. .. zetacomponents/system-information 1.1 Nodrošina piekļuvi vispārējiem sistēmas mainīgajiem lielumiem, piemēram, CPU tipam un ātrumam, kā arī pieejamajam atmiņas apjomam.

Mēģinājumi (Dry Run)

Lai redzētu, vai jaunu atkarību instalēšana ir veiksmīga, varat izmantot parametru -- sausā gaita komandām uzstādīt Un Atjaunināt. Komponists šajā gadījumā parādīs visas iespējamās problēmas, tieši neizpildot pašu komandu. Reālu izmaiņu projektā nebūs. Šis paņēmiens ir lieliski piemērots sarežģītu atkarību pārbaudei un izmaiņu pielāgošanai pirms to faktiskas veikšanas.

Komponista atjauninājums --dry-run --profile --verbose

Izveidojiet projektu

Visbeidzot, mums ir jāpiemin komanda izveidot-projekts.

Projekta izveides komanda kā argumentu izmanto pakotnes nosaukumu, kuru tā pēc tam klonē un izpilda komponista instalēšana tajā iekšā. Tas ir lieliski piemērots projektu inicializēšanai - jums vairs nav jāmeklē vajadzīgās pakotnes URL vietnē GitHub, tas jāklonē, pašam jāiet uz mapi un jāizpilda komanda uzstādīt.

Lieli projekti, piemēram, Symfony un Laravel, jau izmanto šo pieeju, lai inicializētu savas "skeleta" lietojumprogrammas, un daudzi citi pievienojas.

Piemēram, programmā Laravel tas tiek izmantots šādi:

Komponists izveidot-projekts laravel/laravel --prefer-dist --profile --verbose
Uz komandu izveidot-projekts Varat nodot vēl divus parametrus: ceļš kurā instalēt projektu (ja nav norādīts, tiek izmantots pakotnes nosaukums), un versija(ja nav norādīts, tiks izmantots pēdējais).

Secinājums

Es ceru, ka šis padomu un ieteikumu saraksts jums noderēja. Ja mēs kaut ko esam palaiduši garām, pastāstiet mums par to, un mēs atjaunināsim rakstu. Un atcerieties, ja esat aizmirsis kādas komandas vai opcijas, vienkārši apskatiet apkrāptu lapu. Laimīgu komponēšanu!

No autora:Ļoti bieži, izstrādājot tīmekļa lietojumprogrammas, īpaši lielus tīmekļa projektus, ir nepieciešams izmantot dažādas trešo pušu bibliotēkas. Piemēram, tas var būt php ietvars vai veidņu dzinējs, vai foruma dzinējs, vai visas šīs sastāvdaļas kopā. Šajā nodarbībā mēs apskatīsim komponista atkarības pārvaldnieku, ar kuru jūs varat viegli lejupielādēt un instalēt nepieciešamās bibliotēkas.

Ja mēs izmantojam vairākas trešo pušu bibliotēkas, tām visām jābūt pareizi instalētām un savienotām ar izstrādājamo skriptu. Labākajā gadījumā katrā bibliotēkā ir jāiekļauj viens galvenais fails, un, ja mēs izmantojam trīs trešo pušu bibliotēkas, tad ir jāiekļauj trīs faili.

Bet ko darīt, ja kāda no bibliotēkām savā funkcionalitātē ir atkarīga no papildu bibliotēkām, šajā gadījumā tās ir arī jālejupielādē un jāpievieno. Tas ir, izmantojot vairākas bibliotēkas, ar to instalēšanu ir saistītas dažas neērtības.

Tāpēc šajā nodarbībā mēs apskatīsim komponista atkarības pārvaldnieku, ar kuru jūs varat viegli lejupielādēt un instalēt nepieciešamās bibliotēkas.

Instalējiet programmu Composer

Composer ir PHP valodas tulka atkarību pārvaldnieks, vienkāršāk sakot, tas ir PHP valodā rakstīts skripts, kas lejupielādē jums nepieciešamās bibliotēkas un automātiski ģenerē vienu īpašu failu, kuru iekļaujot jūs iekļausiet visas lejupielādētās bibliotēkas. Tajā pašā laikā, ja vajadzīgās bibliotēkas ir atkarīgas no dažām papildu bibliotēkām, tās arī tiks lejupielādētas automātiski. Bibliotēku lejupielāde tiek veikta no oficiālā pakotņu krātuves packagist.org.

Kā jau teicu iepriekš, Composer ir PHP valodas tulka atkarības pārvaldnieks, kas nozīmē, ka šis rīks ir instalēts tieši šīs valodas tulkā. Tajā pašā laikā tagad mēs runājam par tulku, kas ir instalēts jūsu mājas datorā, jo bieži vien serverī (reālā hostingā internetā) mums nav piekļuves PHP valodas tulkam. Jā, un tas nemaz nav nepieciešams, jo būtībā skripti tiek izstrādāti mājas datorā un darba beigās tiek pārsūtīti uz mitināšanu. Protams, PHP valodas tulku katram var uzstādīt savādāk, piemēram, kāds izmanto Denwer programmatūru, kāds OpenServer, kādam ir atsevišķa PHP, Apache, Mysql instalācija, taču tam nav nekādas nozīmes kopš instalēšanas procesa. Komponista atkarības pārvaldnieks ir līdzīgs visiem gadījumiem.

Pirms instalēšanas apskatīsim Composer atkarības pārvaldnieka oficiālo vietni - https://getcomposer.org/ :

Šeit dokumentācijas lapā ir detalizēts apraksts par to, kā instalēt un strādāt ar šo pārvaldnieku (lai gan angļu valodā).

Composer var instalēt operētājsistēmā Windows divos veidos:

manuāli, izmantojot komandrindu;

automātiski, izmantojot īpašu failu, saiti uz kuru atradīsit dokumentācijas lapā, Windows OS instalēšanas sadaļā.

Šajā nodarbībā mēs apsvērsim komponista rīka manuālo instalēšanas veidu. Uzreiz gribu atzīmēt, ka Composer ir fails composer.phar, kas parasti atrodas mapē ar PHP valodas tulku. Tāpēc pirms instalēšanas vēlams šo mapi pārlūkot, jo, piemēram, OpenServer programmatūrā (PHP moduļos) Composer jau ir instalēts.

Tātad, palaižot tīmekļa serveri, atveriet komandrindu (atgādinu, ka operētājsistēmai Windows 7 komandrindu var atvērt, ja izvēlnes Sākt meklēšanā ievadāt cmd) un dodieties uz mapi, kurā ir instalēts PHP valodas tulks. Lai to izdarītu, izmantojiet komandu cd: cd mapes ceļš

Tagad, saskaņā ar dokumentāciju, jums ir jāpalaiž šāda komanda: php -r "readfile('https://getcomposer.org/installer');" | php

Kas izpildīs PHP koda readfile ('https://getcomposer.org/installer'), tas ir, mēs nolasīsim attālo failu. Šeit es vēlos atzīmēt, ka jūsu tulkā PHP valodai ir jābūt savienotam ar paplašinājumu php_openssl.dll, pretējā gadījumā komanda netiks izpildīta.

Pēc komandas izpildīšanas mēs redzam ziņojumu, ka instalēšana ir veiksmīgi pabeigta. Varat pārbaudīt, vai Composer patiešām ir instalēts, izmantojot komandu, kas parādīs tā versiju: php composer.phar -v

Tagad, lai ar to būtu ērtāk strādāt, izpildīsim vēl vienu komandu: echo @php "%~dp0composer.phar" %*>composer.bat

Šī komanda PHP valodas tulka mapē izveidos īpašu failu composer.bat, ar kuru var piekļūt atkarības pārvaldniekam, izmantojot tikai komponista nosaukumu un tajā pašā laikā atrodoties jebkurā mapē no komandrindas. Bet tajā pašā laikā ceļa sistēmas mainīgajā ir jānorāda ceļš uz mapi, kurā ir instalēts PHP valodas tulks:

Nepieciešamo bibliotēku instalēšana

Vispirms vienosimies, ka mūsu skriptam būs nepieciešamas šādas bibliotēkas:

Tagad īpašā composer.json failā (šo failu izveidojam mapē ar izstrādāto skriptu) ir jāapraksta, ka ir nepieciešamas iepriekš minētās bibliotēkas, lai turpmākais skripts darbotos:

( "require": ( "slim/slim":"2.*", "wig/wig":"~1.0", "phpbb/phpbb": "3.1.3-RC2" ) )

"obligāti" :(

"slim/slim" : "2.*" ,

"zars/zars" : "~1.0" ,

"phpbb/phpbb": "3.1.3-RC2"

Kā redzat, šajā failā jābūt objektam json virknes formā. Kas rekvizīta prasībā apraksta tās bibliotēkas, no kurām ir atkarīgs nākotnes skripts. Turklāt prasīt, savukārt, ir arī objekts, kura īpašības ir tās bibliotēkas, kuras nepieciešams lejupielādēt. Kur rekvizīta nosaukums ir bibliotēkas nosaukums, bet vērtība ir lejupielādējamās bibliotēkas versija. Turklāt nosaukums sastāv no divām apakšvirknēm, kuras atdala ar /. Rinda pirms norobežotāja ir piegādātāja nosaukums, rinda pēc ir bibliotēkas nosaukums.

Bibliotēku nosaukumi un versijas, kas jānorāda failā composer.json, ir norādītas oficiālajās vietnēs, instalēšanas sadaļā. Piemēram, Twig veidņu dzinējam dokumentācijas sadaļā Instalēšana ir rinda, kuru ievadīju failā composer.json:

Pēc faila composer.json kompilēšanas atveriet komandrindu, dodieties uz mapi, kurā tiek izstrādāts skripts, un izpildiet komandu: komponista instalēšana

Un nekavējoties sākas nepieciešamo bibliotēku uzstādīšana.

Pēc instalēšanas izstrādātā skripta mapē atradīsim piegādātāja mapi, kurā tika lejupielādētas visas nepieciešamās bibliotēkas un to atkarības un tika ģenerēts autoload.php fails, kuru savienojot jūs savienosiet visas lejupielādētās bibliotēkas. Pēc tam jūs varat strādāt ar instalētajām bibliotēkām.

Tas pabeidz šo nodarbību. Visu to labāko jums un veiksmīgu kodēšanu!

Kas tas ir un kāpēc man tas ir vajadzīgs?

Ja jums ir šis jautājums, tad nelasiet tālāk rakstu un vispirms jautājiet Google "kas ir atkarības injekcija?" un kāpēc tev vajag atkarības vadītājs(it īpaši ).

Personīgi man vairs nav pieteikumu bez komponista. Īpaši, izstrādājot karkasam. Šeit ir tikai galvenie ieguvumi no atkarības pārvaldnieka izmantošanas projektos:

  • Ērta trešo pušu pakotņu un bibliotēku uzstādīšana un atjaunināšana
  • Pareiza izvietošana
  • Svešais kods no trešās puses pakotnēm nav piesaistīts savam krātuvei, kā arī nepiesārņo kodu un statistiku.
  • Elastīga atkarības versiju veidošana

Uzstādīšana

Šeit viss ir pēc iespējas vienkāršāk, bet vispirms jums jāizlemj par lietošanas metodi: viens komponists visam vietējam saimniekam vai katram projektam ir savs komponists? (protams, var kombinēt)

Pirmā iespēja ir ērta izstrādātājiem, kuri vienlaikus strādā ar daudzām lietojumprogrammām un uztur visu tīru un svaigu. Otrā opcija tiek izmantota, ja tiek prasīts, lai lietojumprogrammai būtu precīza un vienota komponista versija visiem izstrādātājiem, un pēc tam tā tiek nodota repozitorijai.

Komponista turēšana kopā ar lietojumprogrammu

Komponista komandas

uzstādīt

Ar iestatījumu un savācot jūsu komponists.json varat sākt instalēt tieši tās pakotnes, kuras norādījām savā json failā blokos “require” un “require-dev”. Šim nolūkam mēs izmantojam komandu uzstādīt.

Composer install ./composer.phar install php composer.phar install

* Pirmā komanda (1. rinda) tiem, kas izvēlējās singla instalēšanas metodi visai operētājsistēmai. Otrais un trešais ir vajadzīgs visiem pārējiem un atšķiras tikai ar to, vai esat devis tiesības palaist phar failu vai nē.

Pirmo reizi palaižot komandu uzstādīt mēs iegūsim jaunāko vai precīzu visu json failā norādīto pakotņu versiju (atkarībā no tā, kā mēs norādījām versiju katrai atsevišķai pakotnei). Atkārtoti palaist komandu uzstādīt nenovedīs pie nekā - un tas ir svarīgs punkts!

Izpildes laikā uzstādīt lejupielādējiet visas bibliotēkas mapē pārdevējs mūsu projekts (zemāk es aprakstīšu, kā mainīt šo ceļu), un blakus json-fails izveidos jaunu failu komponists.slēdzene(šis ir momentuzņēmums — instalēto pakotņu momentuzņēmums ar to precīzajām versijām). mapi pārdevējs nekavējoties jāievieto .gitignore, lai nejauši nesajauktu visu ar savu kodu. Un šeit slēdzene-fails, gluži pretēji, jums ir jāapņemas un jānosūta uz repozitoriju. Ja izdzēšat mapi pārdevējs vai dažas pakotnes no tā un pēc tam vēlreiz izsauc komandu uzstādīt, tad visas pakotnes tiks atjaunotas ar tieši tām pašām versijām, kas tika instalētas pirmajā zvanā uzstādīt. Tas notiek tāpēc, pārbauda pieejamību slēdzene-failu un, ja tāds ir, ignorē json failā norādītās pakotņu versijas (tikai tad, ja tās nav deflētas!), un instalē versijas, kas norādītas slēdzene- fails.

Tādējādi, nokārtojot vienu slēdzene-fails starp visiem izstrādātājiem, komandai tiks garantētas vienas un tās pašas pakotnes versijas (domāju, ka nav vērts paskaidrot, kāpēc).

Atjaunināt

Ja nepieciešams, atjauniniet pakotnes versijas uz jaunākajām - mēs izsaucam komandu Atjaunināt.

Komponista atjauninājums ./composer.phar atjauninājums php composer.phar atjauninājums

Pēc tam visas paketes tiks atjauninātas. Tas arī tiks atjaunināts slēdzene- fails.

Šeit der atcerēties, ka pakotnes tiks atjauninātas atbilstoši versijas formātam, kas norādīts katrai atsevišķi json- fails. Sintakse pakotņu versiju norādīšanai ir labi aprakstīta oficiālajā dokumentācijā.

pašatjaunināšana

Vēl viena noderīga komanda, kas pati tiks atjaunināta .

Komponista pašatjauninājums ./composer.phar pašatjauninājums php composer.phar pašatjauninājums

parādīt

./composer.phar show -s -t ./composer.phar show -i -t

Šī komanda parāda instalēto pakotņu sarakstu.

Pirmais piemērs (ar atslēgu -s) parādīs to paku koku, ko mēs manuāli norādījām json- fails.

Otrais piemērs (ar atslēgu -i) uzskaitīs pilnīgi visas instalētās pakotnes, rekursīvi iekļaujot visu mūsu oriģinālo pakotņu atkarības.

Atslēga -t maina atbildes attēlojumu uz atkarības koka stilu.

piegādātāja ceļš vai kā mainīt bibliotēkas instalācijas ceļu

Lai mainītu pakotnes instalēšanas ceļu, ir jāizmanto direktīva pārdevējs-rež V json- fails. Šeit ir piemērs:

( "nosaukums": "Mans projekts", "apraksts": "Projekta apraksts", "mājaslapa": "http://my-project.com/", "config": ( "vendor-dir": "/vendor /custom/path" ), "require": ( "php": ">=5.3.3", "zendframework/zendframework": "2.*" ), "require-dev": ( "zendframework/zftool": "v0.1.0", "zendframework/zend-developer-tools": "dev-master" ) )

Secinājums

Es mēģināju aprakstīt visas pamata lietas, kas jums var būt nepieciešamas, lai iepazītos ar Composer. Detalizētākas funkcijas vislabāk var izpētīt dokumentācijā. Piemēram: kā iespējot savas bibliotēkas lejupielādi no github.

Un ērtai nepieciešamo pakešu meklēšanai iesaku izmantot projektu packagist.org

Ja jums ir kādi jautājumi, droši rakstiet komentāros.