Repozitoriju iestatīšana ar Composer

Ingmar Aasoja
RSS: Dalīties:
Šis ieraksts ir novecojis!

Š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?

Repozitoriju iestatīšana ar Composer

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 repozitoriju
git clone https://github.com/composer/satis.git

# instalējam nepieciešamās atkarības 
cd satis
composer install

# izveidojam direktoriju repozitoriju attēlošanai
mkdir 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.

Populāri ieraksti

.NO domain now at Zone – is your business ready for the Norwegian market?

.NO domēns tagad pieejams Zone – vai jūsu uzņēmums ir gatavs Norvēģijas tirgum?

Ants Korsar
Ja jūs plānojat paplašināt savu darbību Norvēģijā vai jau darbojaties tur, tagad ir īstais brīdis nodrošināt sev vietēju un uzticamu tīmekļa...
Zone Webmail 3.0: New features that make email management easier than ever

Zone Webmail 3.0: Jaunas funkcijas, kas padara e-pasta pārvaldību vieglāku nekā jebkad agrāk

Nikita Tikhomirov
Ir klāt uzlabotā Zone Webmail versija, kas piedāvā jaunu un lietotājam draudzīgu pieredzi. Mūsu mērķis ar šo jauno atjauninājumu bija vienkāršs:...
Still the rightful owner of your domain? ICANN’s new rule means it’s time to double-check

Vai joprojām esat sava domēna likumīgais īpašnieks? ICANN jaunais noteikums – laiks pārbaudīt vēlreiz

Jaanus Putting
Sākot ar 2025. gada 28. maiju, stājas spēkā jauna ICANN politika, kas ietekmē visus ģenerisko domēnu, piemēram, .COM, .ORG un .NET, īpašniekus....
Why choose a .EU domain today?

.EU domēns – kāpēc izvēlēties tieši šodien?

Jaanus Putting
Mēs dzīvojam laikā, kad globālās varas dinamika mainās ātrāk nekā jebkad agrāk. Kamēr Eiropa virzās uz spēcīgāku, vienotāku iekšējo tirgu,...