assertMatchesRegularExpression('/^ARG PHP_VERSION=(\d+\.\d+\.\d+)\s*$/m', $this->dockerfile()); preg_match('/^ARG PHP_VERSION=(\d+\.\d+\.\d+)\s*$/m', $this->dockerfile(), $trovata); $this->assertTrue( version_compare($trovata[1], self::MINIMA, '>='), "PHP {$trovata[1]} รจ vulnerabile a CVE-2026-109618/109619: serve almeno " . self::MINIMA . '.', ); } public function test_l_immagine_usa_la_versione_fissata_e_non_un_tag_mobile(): void { preg_match_all('/^FROM php:(\S+)/m', $this->dockerfile(), $basi); $this->assertNotEmpty($basi[1]); foreach ($basi[1] as $tag) { $this->assertStringStartsWith('${PHP_VERSION}', $tag, "FROM php:{$tag}: usa ARG PHP_VERSION, non un tag che si sposta."); } } }