opcua-client-nodeset · v4.3.x
Docs · Getting started

Installation

Install with Composer. Zero configuration; the package is a static set of PHP classes loaded through the autoloader.

php-opcua/opcua-client-nodeset is distributed through Packagist. It is a pure-PHP code package — no extensions, no runtime configuration, no service provider to register.

Requirements

  • PHP ≥ 8.2
  • php-opcua/opcua-client ≥ 4.3 (pulled in automatically)

Cross-platform: Linux, macOS, Windows. Same support matrix as opcua-client.

Install

bash terminal
composer require php-opcua/opcua-client-nodeset

That installs the package, pulls in opcua-client, and makes every PhpOpcua\Nodeset\* class autoloadable. No further setup.

Verify

A trivial smoke test — load any registrar class without connecting anywhere:

php examples/verify.php
<?php

require __DIR__ . '/vendor/autoload.php';

use PhpOpcua\Nodeset\Robotics\RoboticsRegistrar;

$registrar = new RoboticsRegistrar();

echo "Registrar loaded: " . $registrar::class . "\n";
echo "Depends on " . count($registrar->dependencyRegistrars()) . " other registrars\n";
echo "Has " . count($registrar->getEnumMappings()) . " enum mappings\n";

Running this prints something like:

text output
Registrar loaded: PhpOpcua\Nodeset\Robotics\RoboticsRegistrar
Depends on 2 other registrars
Has 4 enum mappings

If you see autoload errors, your Composer setup is the issue — not the package. Run composer dump-autoload and try again.

Versioning constraint

The package's major and minor versions track opcua-client. The Composer constraint is ^4.3.0; same-line patches are picked up automatically. See Reference · Versioning for the compatibility policy across major bumps.

For applications that pin opcua-client tightly, mirror the same constraint here:

bash terminal — pinning
composer require php-opcua/opcua-client:^4.3 php-opcua/opcua-client-nodeset:^4.3

What this package does not require

  • opcua-cli — needed only when regenerating from a fresh UA-Nodeset checkout. End users composer require the package and use the pre-built src/. See Regeneration · Overview for the rare cases that need it.
  • opcua-session-manager — completely orthogonal. You can use this package with the direct client, the managed client, or the mock; it works the same way against all three.

Memory and autoload cost

The package is 807 PHP files at v4.3.0 (309 enums, 193 DTOs, 193 codecs, 56 registrars, 56 NodeIds classes). They are loaded lazily via Composer's PSR-4 autoloader — a class is read from disk only when first referenced. Using one specification's registrar (e.g. RoboticsRegistrar) loads its handful of files plus the dependency chain (typically 2-4 files). The rest stay on disk.

For containerised deployments, the package adds ~1.5 MiB to the vendor directory. Autoload classmap dumps (composer dump-autoload --optimize) bring boot-time autoload cost into the microseconds range.

Next step

Quick start wires a real session against an OPC UA server.