Repozitoriju iestatīšana ar Composer
Šis ir trešais raksts sērijā par pakotņu pārvaldnieku Composer, kas ievērojami atvieglo jebkura tīmekļa izstrādātāja darbu. Iepriekšējos rakstos esmu skaidrojis kā sākt lietot composer.phar, un apskatījām biežāk lietotās komandas. Tālāk atbildēsim uz jautājumu: kā ar Composer palīdzību uzstādīt paša izveidotu pakotni un padarīt citu pakotni atkarīgu no tās?

Instalējot atkarības ar composer install komandu, vispirms tiek meklēta attiecīgā pakotne publiskajā packagist.org reģistrā. Ja vēlaties ar šo pašu komandu instalēt arī savas izveidotās pakotnes, ir vairākas iespējas.
Packagist.org
Ja attiecīgā lietotne ir atvērtā koda, to var reģistrēt publiskajā packagist.org reģistrā, kas skenēs publiski pieejamo Git repozitoriju manuāli vai automātiski ar webhook palīdzību. Pakotne tiks uzstādīta bez papildu darbībām. Jāizmanto tikai unikāls pakotnes nosaukums.
composer.json faila iestatīšana
Privātos Git repozitorijus var norādīt tieši projektam izveidotajā composer.json failā, kuram būs attiecīgā atkarība. Lai to izdarītu, nepieciešams norādīt vajadzīgās pakotnes laukā repositories.
{
"repositories": [
{
"type": "vcs",
"url": "git@minu-git-aadress.org:vendor/minut-git-repo.git"
}
],
"require": {
"vendor/minut-git-repo": "dev-master"
}
}Code language: JSON / JSON with Comments (json)
Starp citu – aprakstītais risinājums atbalsta arī Subversion, Mergurial un Fossil papildus Git.
Privāta reģistra izmantošana
Ja jums ir vairākas privātas pakotnes un to pārvaldība caur composer.json failiem kļūst sarežģīta, varat izmantot arī savu reģistru. Arī šeit ir vairākas iespējas. Piemēram, var izmantot maksas Private Packagist pakalpojumu, kas palīdz arī uzraudzīt drošības ievainojamības, pārvaldot publiskās atkarības, un spēj spoguļot kodu gadījumā, ja bibliotēka nav pieejama vajadzīgajā brīdī.
Kā alternatīvu varat šādu reģistru uzturēt arī pats. Labs rīks tam ir, piemēram, Satis, kas darbojas uz mūsu Zone hostinga programmatūras. Satis izveidos statisku reģistru Composer vajadzībām, kas būs nolasāms ar konfigurācijas failu.
Satis instalēšana
Vispirms instalēsim Satis uz virtuālā servera. Lai to izdarītu, pieslēdzamies serverim caur SSH un pārejam uz domēna mājas direktoriju:
cd domains/www.miljonivaade.euCode language: Bash (bash)
Pēc tam instalējam lietotni:
# klonējam Satis git repozitorijugitclonehttps://github.com/composer/satis.git# instalējam nepieciešamās atkarībascdsatiscomposer install# izveidojam direktoriju repozitoriju attēlošanaimkdir public
Tīmekļa servera iestatīšana
Lai publicētu repozitoriju, serverim pievienojam apakšdomēnu satis.miljonivaade.eu un kā Direktorijas uz servera vērtību norādām satis/public.
Satis konfigurēšana
Pēc tam izveidojam satis.json failu serverī un novietojam to vienu līmeni augstāk par apakšdomēnu apkalpojošo direktoriju, t.i., direktorijā satis. Viena faila daļa ir vispārējā reģistra konfigurācija, otra – repozitoriju masīvs, kurus vēlaties iekļaut. Šīm daļām ir tieši tāda pati struktūra kā composer.json laukam repositories.
Šī faila saturs varētu izskatīties šādi:
{
"name": "my/repository",
"homepage": "https://satis.miljonivaade.eu",
"repositories": [
{
"type": "vcs",
"url": "git@minu-git-aadress.org:vendor/minut-git-repo.git"
}
],
"require-all": true
}Code language: JSON / JSON with Comments (json)
Visi repozitoriji, kurus vēlaties pievienot savam reģistram, jānorāda šī faila laukā repositories.
Satis palaišana
Lai sāktu izmantot savu reģistru, jāģenerē reģistrs pēc konfigurācijas faila. Komanda pārbaudīs visus norādītos Git repozitorijus un izveidos attiecīgo saturu, ko varēs attēlot tīmeklī. Lai to izdarītu, direktorijā satis izpildiet šādu komandu:
php bin/satis build satis.json publicCode language: Bash (bash)
Atverot satis.miljonivaade.eu apakšdomēnu pārlūkprogrammā, redzēsiet izveidoto reģistru un pieejamās pakotnes. Detalizētākas konfigurācijas iespējas atradīsiet dokumentācijā. Kā lietot dokumentāciju, sīkāk skaidrots arī Satis dokumentācijā. Šajā piemērā to nekonfigurēsim, lai apraksts būtu vienkāršāks.
Privātā reģistra izmantošana
Lai varētu izmantot reģistrā iekļautās pakotnes, jākonfigurē attiecīgās pakotnes composer.json apakšdomēns:
"repositories": [
{
"type": "composer",
"url": "https://satis.miljonivaade.eu"
}
]Code language: JSON / JSON with Comments (json)
Pēc tam varēsiet instalēt ar šo reģistru pieejamās pakotnes.
Papildus
Lai gan tagad mums ir pilnībā funkcionējošs privāts reģistrs, ko var izmantot ar Composer, joprojām jāņem vērā vēl daži aspekti.
1. Autentifikācija
Būtu ieteicams ierobežot piekļuvi apakšdomēnam, piemēram, atļaujot tikai ar serveriem saistītās IP adreses, kas izmanto šo reģistru, vai arī uzstādīt HTTP basic auth paroles autentifikāciju.
2. Automātiskie atjauninājumi
Lai iespējotu reģistra automātisku atjaunināšanu, iesaku pievienot atjaunināšanas komandu cd www.miljonivaade.eu/satis && [[$PHP]] bin/satis build satis.json public periodiskajos darbos un palaist to ar saprātīgu biežumu – piemēram, reizi dienā, atkarībā no tā, cik bieži attiecīgās pakotnes var tikt atjauninātas.
3. Pakotņu spoguļošana
Lai pārņemtu kontroli savās rokās un nebūtu atkarīgs no Github, jūs varat arī spoguļot savas konfigurētās pakotnes uz to pašu Satis serveri. Tas samazinās ārējā tīkla trafiku un paātrinās instalāciju Zone pakalpojumu ietvaros. Starp citu – ar Satis var spoguļot arī publiskās pakotnes.
Lai izmantotu spoguļošanu, jāpievieno šādas rindas savam satis.json failam:
...
"archive": {
"directory": "dist",
"format": "tar",
"skip-dev": true
}
...Code language: JSON / JSON with Comments (json)
Šīs pakotnes tiks instalētas public mapē nākamajā palaišanas reizē. Tomēr jāņem vērā, ka jūsu virtuālā servera diska vieta ir ierobežota, tāpēc spoguļošanai izvēlieties tikai nepieciešamos repozitorijus.