rikstone/php-cpe

A package that enables working with Common Platform Enumeration (CPE)

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/rikstone/php-cpe

v0.5.0 2025-10-13 05:40 UTC

This package is auto-updated.

Last update: 2026-01-07 06:13:20 UTC


README

PHP library for working with CPE (Common Platform Enumeration)

Installation

composer require rikstone/php-cpe

Features

  • Parse and build CPE URIs (2.2 and 2.3)

  • Convert between versions (2.2 ↔ 2.3)

  • Typed classes for each CPE version

  • Field normalization according to MITRE rules

Example

Creating a CPE 2.2

use Rikstone\Cpe\Cpe22;
use Rikstone\Cpe\Part;

$cpe = (new Cpe22())
    ->setPart(Part::H)
    ->setVendor('dell')
    ->setProduct('inspiron')
    ->setVersion('8500');

echo $cpe;

Creating a CPE 2.3

use Rikstone\Cpe\Cpe23;
use Rikstone\Cpe\Part;

$cpe = (new Cpe23())
    ->setPart(Part::A)
    ->setVendor('f5')
    ->setProduct('nginx')
    ->setVersion('0.3.31');
//    ->setUpdate()
//    ->setEdition()
//    ->setLanguage()
//    ->setSwEdition()
//    ->setTargetSw()
//    ->setTargetHw()
//    ->setOther();

echo $cpe;
// cpe:2.3:a:f5:nginx:0.3.31:*:*:*:*:*:*:*

Parsing a CPE 2.2 string

$cpe = Cpe22::fromString('cpe:/a:zoom:zoom_client_for_vdi:5.7.1');

echo $cpe->getVersion(); // 5.7.1

Converting between CPE versions

Convert 2.2 → 2.3

use Rikstone\Cpe\CpeConverter;
use Rikstone\Cpe\Cpe23;
use Rikstone\Cpe\Cpe22;

$source = Cpe22::fromString('cpe:/o:microsoft:windows_2000');

$cpe23 = (new Converter())->convert($source, Cpe23::class);

echo $cpe23; // cpe:2.3:o:microsoft:windows_2000:*:*:*:*:*:*:*:*

Convert 2.3 → 2.2

use Rikstone\Cpe\CpeConverter;
use Rikstone\Cpe\Cpe23;
use Rikstone\Cpe\Cpe22;

$source = Cpe23::fromString('cpe:2.3:a:zoom:zoom_client_for_vdi:5.7.1:*:*:*:*:*:*:*');

$cpe22 = (new Converter())->convert($source, Cpe22::class);

echo $cpe22; // cpe:/a:zoom:zoom_client_for_vdi:5.7.1