Saját javítások alkalmazása zeneszerzői csomagokra – CloudSavvy IT

Avatar Gadam | 2021.02.05. 38 Views 0 Likes 0 Ratings

38 Views 0 Ratings Rate it

[ad_1]

PHP logó

Harmadik féltől származó csomagok használata felgyorsíthatja a projekt fejlődését. Előfordulhat, hogy extra funkciókat kell hozzáadnia, vagy javítania kell egy kritikus hibát. A Composer által telepített PHP-csomagokra a következőképpen alkalmazhat javításokat.

Mikor kell csomagot javítani

Először fontolja meg, hogy helyénvaló-e létrehozni egy projekten belüli javítást. A javításnak mindig kisebb változásnak kell lennie. Ha átfogó új funkcionalitást kell hozzáadnia, akkor nyisson meg egy kérdést a csomag ellen, vagy saját maga nyújtsa ki. Ez segít elkerülni a konfliktusokat a csomag fejlődésével.

Alaposan át kell gondolnia, hogy a kívánt változás valóban a projektjére jellemző-e. A függőségi javítások általában csak néhány kódsort érintenek. Olyan hibákkal és problémákkal foglalkoznak, amelyek egyébként megakadályoznák a csomag használatát. A legtöbb tapasz rövid távú jellegű. Később ezeket a forrás kódjaival kell helyettesíteni a csomag kódbázisában.

Végül meg kell mérnie a szándékait. Azonnal kezel egy csomaggal kapcsolatos problémát, vagy kibővíti a csomag funkcionalitását, hogy igazodjon a kódalapjához? Ha ez utóbbi, akkor fontolja meg, hogy hozzájáruljon a csomaghoz, vagy csomagolja azt olyan extra osztályokkal és funkciókkal, amelyek első osztályú polgárai a projektnek.

Zeneszerzői javítás létrehozása

Miután felhívta a javítást, elkezdheti a projekt előkészítését. A zeneszerző nem rendelkezik beépített patch támogatással, ezért a népszerűt fogjuk használni simplify/vendor-patches projekt hozzáadni. Ez intuitív kezelőfelületet biztosít cweagans/composer-patches hogy segítsen új javítások létrehozásában.

composer require --dev symplify/vendor-patches

Győződjön meg arról, hogy a javítandó csomag telepítve van-e a projektjében:

composer require example/broken-package

Ezután nyissa meg a problémás fájlt a kódszerkesztőben. Megtalálja a vendor Könyvtár. Példánkban szerkesztenünk kell vendor/example/broken-package/src/Broken.php:

<?php
 
class Broken {
    public function __construct(string|int $foo) {
        if (is_string($foo)) {
            echo "Valid value!";
        }
    }
}
 
?>

Az Broken osztály várhatóan mind a karakterláncokat, mind az egész számokat elfogadja A PHP 8 szakszervezet-típusai. Sajnos a forrást nézve kiderül, hogy valójában csak húrokat fogad el.

Fiktív példánkban a csomag karbantartója elismerte a problémát, de még nem hozott létre új kiadást. Javítsuk ki addig a problémát.

Másolja át a törött fájlt, változatlanul, és adjon hozzá egy .old utótag:

cp vendor/example/broken-project/src/Broken.php vendor/example/broken-project/src/Broken.php.old

Ügyeljen arra, hogy ne szerkessze a .old reszelő!

Ezután szerkessze a eredeti fájl, így megfelelően működik a kódbázisában. A helyben történő szerkesztés során a változtatások azonnal érvénybe lépnek. Ellenőrizze, hogy a kódbázisa most a várt módon viselkedik-e.

<?php
 
class Broken {
    public function __construct(string|int $foo) {
        if (is_string($foo)) {
            echo "Valid value!";
        }
        else if (is_int($foo)) {
            echo "Also valid!";
        }
    }
}
 
?>

A javítófájl létrehozása

Most már használhatja a symplify/vendor-patches tervezzen egy javítófájl létrehozását a javításhoz. A csomag a vendor-patches bináris, amely automatikusan beolvassa a vendor könyvtárban megtalálja az elvégzett módosításokat.

vendor/bin/vendor-patches generate

A parancs futtatása diff-et generál az Ön számára. Mentésre kerül a patches könyvtárat a projekt gyökerénél. A különbséget a .php és .php.old létrehozott fájlokat.

Újra futtathatja a parancsot, hogy felfedezhesse a hozzáadott új javításokat. Minden megváltozott fájl megkapja a saját javítását a patches Könyvtár.

Automatikus javítás

A composer.json fájlt, látni fogja, hogy egy új szakasz került hozzáadásra:

{
    "extra": {
        "patches": {
            "example/broken-package": [
                "patches/example-broken-package-src-broken-php.patch"
            ]
        }
    }
}

Az patches Az objektum a telepített csomagok nevét az alkalmazandó patch fájlok tömbjéhez térképezi fel. Ezeket a javításokat automatikusan alkalmazzák bármikor composer install.

A telepítési szkriptet a simplify/vendor-patches. Minden függőség telepítése után hívják meg. A szkript megnézi, hogy vannak-e meghatározva javítások a csomaghoz. A megtaláltakat automatikusan alkalmazza.

Látni fogja a sorokat a composer install kimenet jelzi, hogy a javításokat mikor alkalmazták. Ha hibát jelentenek, használhatja composer install --verbose hogy több információt kapjon a patch kihagyásának okáról. Ez gyakran annak köszönhető, hogy egy csomagfrissítés kijavította a javított problémát, és ezáltal a javítófájl feleslegessé vált.

Javítások eltávolítása

Ideiglenesen eltávolíthatja a javítást a törlésével composer.json. Ez leállítja a tapasz alkalmazását, amikor Ön composer install.

A javítás végleges törléséhez a projektből távolítsa el azt composer.json vonal. Ezután eltávolíthatja .patch fájl a projektjéből patches Könyvtár.

Ha vissza szeretné állítani a helyileg alkalmazott javítást, a javítás törléséhez vagy letiltásához a legegyszerűbb a fenti lépéseket követni. Ezután eltávolíthatja a csomagot a vendor könyvtárat és futtassa composer install hogy visszatérjen a tiszta laphoz.

[ad_2]
Source link