An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

Cód PHP a thástáil: PHPUnit agus Pest

Is é PHPUnit an uirlis chaighdeánach tástála do PHP, tógann Pest air. An té a bhfuil tástálacha aige, is féidir leis nuashonruithe slándála agus athruithe leagain a shuiteáil níos tapúla agus le riosca níos lú.

Staid Am léitheoireachta: 5 nóim.Eolas PHP

Go achomair: Is é PHPUnit an uirlis chaighdeánach chun cód PHP a thástáil go huathoibríoch; is creat é Pest a thógann air le nodaireacht níos giorra. Faoi láthair is é PHPUnit 13 an leagan reatha (ó Feabhra 2026, ó PHP 8.4), tá Pest i leagan 5. Ní dhúnann tástálacha uathoibríocha leochaileachtaí slándála i PHP féin, ach déanann siad nuashonruithe inphleanáilte: tar éis PHP2Shell agus roimh dheireadh tacaíochta PHP 8.2 an 31.12.2026 is é sin an buntáiste cinntitheach.

Cén fáth cód PHP a thástáil?

Don bhainistíocht is féidir an tairbhe a achoimriú in abairt amháin: déanann tástálacha athruithe níos saoire agus níos sábháilte. Seiceálann tástáil uathoibríoch i soicindí an ndéanann feidhm an rud ba cheart di a dhéanamh fós, mar shampla an ríomhann cairt siopadóireachta i gceart nó an bhfuil logáil isteach ag diúltú do phasfhocail mhícheart. Gan tástálacha seiceálann duine de láimh é sin, nó ní sheiceálann aon duine.

Is soiléire an difríocht ag nuashonruithe. Nuair ba ghá PHP a nuashonrú go gasta mar gheall ar leochaileacht chriticiúil, cuireann a lán oibreoirí moill orthu féin mar go bhfuil eagla orthu roimh earráidí sa siopa nó sa tairseach custaiméirí. Le tacar tástála ritheann an nuashonrú ar dtús i dtimpeallacht thástála, léiríonn na tástálacha fadhbanna, agus ina dhiaidh sin téann sé beo.

PHPUnit: an caighdeán do thástálacha PHP

Foilsítear PHPUnit gach bliain i bhFeabhra i bpríomhleagan nua. Éilíonn gach leagan íosleagan de PHP agus faigheann sé ceartúcháin earráide ar feadh thart ar dhá bhliain. De réir phpunit.de tá an méid seo i bhfeidhm:

PHPUnit Eisithe Riachtanas PHP Ceartúcháin earráide go dtí
13 06.02.2026 ó PHP 8.4 04.02.2028
12 07.02.2025 ó PHP 8.3 05.02.2027
11 02.02.2024 ó PHP 8.2 06.02.2026
10 03.02.2023 ó PHP 8.1 07.02.2025

Léiríonn an tábla ceangal praiticiúil: de ghnáth ritheann tionscadal a úsáideann PHPUnit 10 fós ar sheanleagan PHP. Ba cheart uirlisí tástála agus leagan PHP a ardú le chéile. Suiteáiltear PHPUnit de ghnáth trí Composer mar spleáchas forbartha.

An chéad tástáil le PHPUnit

Is aicme é tástáil a oidhreoidh ó PHPUnit\Framework\TestCase. Tá modhanna tástála poiblí agus tosaíonn siad le test, nó marcálann tú iad leis an tréith #[Test]. Seiceálann an sampla feidhm shimplí chun praghas a ríomh:

<?php declare(strict_types=1);

use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

final class BruttopreisTest extends TestCase
{
    public static function preise(): array
    {
        return [
            'Normalsatz'   => [10000, 19, 11900],
            'Ermäßigt'     => [10000, 7, 10700],
            'Null bleibt Null' => [0, 19, 0],
        ];
    }

    #[DataProvider('preise')]
    public function testBruttopreisInCent(int $netto, int $satz, int $erwartet): void
    {
        $this->assertSame($erwartet, bruttopreis($netto, $satz));
    }
}

Soláthraíonn an Data Provider roinnt cásanna don tástáil chéanna. De réir dhoiciméadú PHPUnit ní mór dó a bheith poiblí agus statach. Ríomhtar i cent mar shlánuimhir, ionas nach dtagann earráidí cruinnithe ó uimhreacha snámhphointe. Ritheann an tacar le ./vendor/bin/phpunit, má shuiteáiltear PHPUnit trí Composer.

Pest: an bonn céanna, nodaireacht níos giorra

De réir an doiciméadaithe tá Pest tógtha ar PHPUnit. Scríobhtar tástálacha mar fheidhmeanna le it() nó test() agus ionchais le expect(). Éilíonn Pest 5 PHP 8.4. An tsuiteáil de réir an doiciméadaithe:

composer remove phpunit/phpunit
composer require pestphp/pest --dev --with-all-dependencies
./vendor/bin/pest --init

An tástáil chéanna i nodaireacht Pest:

<?php
it('berechnet den Bruttopreis zum Normalsatz', function () {
    expect(bruttopreis(10000, 19))->toBe(11900);
});

Athraíonn an breiseán pestphp/pest-plugin-drift tástálacha PHPUnit atá ann cheana den chuid is mó go huathoibríoch. Cén nodaireacht a roghnaíonn foireann, is ceist bhlas é; is é an rud cinntitheach go ritheann tástálacha go rialta.

Cé na cineálacha tástála atá ciallmhar

  1. Tástálacha aonaid: seiceálann siad feidhmeanna agus aicmí aonair gan bunachar sonraí ná líonra.
  2. Tástálacha comhtháthaithe: seiceálann siad an comhoibriú le bunachar sonraí, córas comhad nó comhéadain.
  3. Tástálacha feidhme thar HTTP: glaonn siad leathanaigh agus foirmeacha mar a dhéanann brabhsálaí.
  4. Tástálacha cúlchéimnithe slándála: coinníonn siad earráidí ceartaithe seasta, mar shampla go gcosctar aschuir le htmlspecialchars() nó go dteipeann ar logáil isteach tar éis pasfhocal mícheart.
  5. Tástálacha toitín tar éis an imscartha: cúpla seiceáil tapa an bhfreagraíonn an suíomh beo tar éis nuashonraithe.

Mar fhorlíonadh ar thástálacha, aimsíonn anailís statach le PHPStan agus Psalm earráidí gan an cód a rith.

Tástálacha mar líonra sábhála do nuashonruithe agus do PHP2Shell

Léirigh PHP2Shell cé chomh gearr is féidir an t-am a bheith idir foilsiú agus brú gníomhaíochta: fógra an 20.10.2026, paistí an 21.10.2026, leibhéal rabhaidh Oráiste an BSI. An té a raibh tacar tástála aige, d'fhéadfadh sé PHP 8.4.27 nó 8.3.36 a shuiteáil i dtimpeallacht thástála, na tástálacha a rith agus dul beo an lá céanna. Gan tástálacha ba é an rogha go minic idir nuashonrú gan seiceáil agus leochaileacht oscailte.

Níos mó fós is é an tairbhe agus príomhleagan á athrú. Do PHP 8.1 agus níos sine níl nuashonruithe oifigiúla ann a thuilleadh, agus críochnaíonn PHP 8.2 an 31.12.2026, mar a mhíníonn an leathanach PHP End of Life. Léiríonn rith tástála i gcoinne an sprioclinbh go luath cé na feidhmeanna imithe i léig ar gá a athsholáthar. Is ciallmhar píblíne CI a ritheann tástálacha i gcoinne roinnt leaganacha PHP, chomh maith le súil ar Release Candidates ar nós PHP 8.6.0, ach riamh sa táirgeadh.

Leid

Scríobh tástáil do gach earráid slándála a ceartaíodh i d'fheidhmchlár. Ar an gcaoi sin cinntíonn tú nach dtagann an earráid chéanna ar ais le hathrú níos déanaí.

Conas a chabhraíonn PHP SOS go praiticiúil?

Leis an aistriú ó PHP 8.1 agus níos sine agus le nuashonruithe leanúnacha tacaímid mar seo:

  • An stoc a mheas: Cé na tástálacha atá ann, cé na leaganacha PHP agus PHPUnit atá ag rith, cá bhfuil tástálacha in easnamh do phróisis chriticiúla?
  • Íos-chlúdach a chruthú: In éineacht le d'fhoireann forbartha nó le d'ghníomhaireacht cosnaímid logáil isteach, foirmeacha agus bealaí ordaithe le tástálacha.
  • Nuashonruithe a thástáil: Ritheann leaganacha nua PHP i dtimpeallacht thástála i gcoinne an tacair ar dtús.
  • An toradh a dhoiciméadú: Faigheann tú torthaí tástála agus staideanna leaganacha mar fhianaise ar an gcéim phaistithe nó aistrithe.

Ceisteanna coitianta

Cén leagan PHPUnit atá de dhíth orm?

Braitheann sé ar do leagan PHP. Éilíonn PHPUnit 13 PHP 8.4, PHPUnit 12 PHP 8.3 agus PHPUnit 11 PHP 8.2. Tá an tábla reatha ar phpunit.de faoi na leaganacha tacaithe.

An bhfuil Pest ina chur in ionad PHPUnit?

De réir a dhoiciméadaithe féin tá Pest tógtha ar PHPUnit agus tairgeann sé nodaireacht níos giorra. Is féidir tástálacha PHPUnit atá ann cheana a thiontú den chuid is mó go huathoibríoch leis an breiseán Drift, ach ní mór cuid acu a oiriúnú de láimh.

An gcabhraíonn tástálacha i gcoinne leochaileachtaí slándála i PHP féin?

Ní go díreach. Tá leochaileachtaí ar nós PHP2Shell san ateangaire agus dúntar iad le nuashonrú PHP. Cinntíonn tástálacha, áfach, gur féidir leat an nuashonrú sin a shuiteáil go tapa, gan eagla roimh earráidí gan tabhairt faoi deara san fheidhmchlár.

Cé mhéad tástáil atá go leor?

Níl aon uimhir sheasta ann. Is ciallmhar na bealaí a bhfuil tábhacht ghnó leo a chlúdach ar dtús: logáil isteach, ordú, foirmeacha, comhéadain. Ina dhiaidh sin fásann clúdach na dtástálacha le gach athrú agus le gach earráid a cheartaítear.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach