Changelog
[v4.3.0] - 2026-04-24
Changed
- Bumped
php-opcua/opcua-clientfrom^4.2.0to^4.3.0andphp-opcua/opcua-cli(dev) to^4.3.0. - Regenerated all 807 files with
opcua-cliv4.3.0 — output unchanged.
[v4.2.0] - 2026-04-17
Changed
- Bumped minimum
php-opcua/opcua-clientdependency from^4.1to^4.2.0andphp-opcua/opcua-clidev dependency from^4.1to^4.2.0to align with the Kernel + ServiceModule architecture introduced inopcua-clientv4.2.0. No code changes or regeneration required — this package contains only pre-generated types, and the public API surface it consumes (PhpOpcua\Client\Repository\ExtensionObjectRepository,PhpOpcua\Client\Repository\GeneratedTypeRegistrar,PhpOpcua\Client\Encoding\BinaryDecoder,PhpOpcua\Client\Encoding\BinaryEncoder,PhpOpcua\Client\Encoding\ExtensionObjectCodec) is unchanged by the v4.2.0 refactor. - Verified end-to-end compatibility against v4.2.0:
composer format:checkpasses on all 807 generated files, and a smoke load of the Robotics registrar (registerCodecs()+getEnumMappings()) returns the expected 4 enum mappings.
[v4.1.0] - 2026-04-13
Changed
- Bumped minimum
php-opcua/opcua-clientdependency from^4.0to^4.1andphp-opcua/opcua-clidev dependency from^4.0to^4.1to align with the ECC security policies (ECC_nistP256,ECC_nistP384,ECC_brainpoolP256r1,ECC_brainpoolP384r1) introduced inopcua-clientv4.1.0. No code changes or regeneration required — this package contains only pre-generated types that are unaffected by security layer changes. - Updated ecosystem table in README to reference
uanetstandard-test-suiteinstead ofopcua-test-suite.
v4.0.0 - 2026-03-29
Added
- Pre-generated PHP types for 51 OPC UA companion specifications. 807 PHP files generated from the OPC Foundation UA-Nodeset repository, covering industrial protocols from Robotics to BACnet. Zero configuration — just
composer requireand use. - NodeId constants. One class per specification with all node IDs as string constants, usable directly with
read(),write(),browse()on the OPC UA client. Example:RoboticsNodeIds::OperationalMode. - PHP BackedEnum generation. 309 enum classes across all specifications. When loaded via the registrar,
read()returns typed enum instances instead of raw integers. Example:OperationalModeEnumeration::MANUAL_REDUCED_SPEED. - Readonly DTOs. 193 strictly typed
readonlyclasses for structured OPC UA data types. Enum fields are typed with the corresponding generated enum class. Array fields and optional (nullable) fields are fully supported. - Binary codecs. 193
ExtensionObjectCodecimplementations for binary encode/decode of structured data types. Automatically registered via the registrar system. - Registrar system with automatic dependency resolution. Each specification provides a
GeneratedTypeRegistrarwithregisterCodecs(),getEnumMappings(), anddependencyRegistrars(). Loading one specification automatically loads its dependencies recursively — e.g. loadingMachineToolRegistrarautomatically loads Machinery, DI, and IA. Usenew MachineToolRegistrar(only: true)to skip dependency loading. - PHP generation script.
generate.phphandles the full pipeline: clones UA-Nodeset if not present, iterates all specifications, callsopcua-cli generate:nodesetfor each XML, and runs integrated dependency cleanup to remove references to non-generated registrars.
Specifications included
AMB, ADI, AML, AutoID, BACnet, CAS, CNC, CommercialKitchenEquipment, CranesHoists, CSPPlusForMachine, CuttingTool, DEXPI, DI, ECM, FDI, FDT, GDS, GPOS, I4AAS, IA, IOLink, IREDES, ISA95, LADS, LaserSystems, Machinery, MachineTool, MachineVision, MDIS, MetalForming, MTConnect, Onboarding, PackML, PADIM, PAEFS, PNEM, POWERLINK, PROFINET, Pumps, Robotics, RSL, Safety, Scales, Scheduler, Sercos, Shotblasting, TMC, Weihenstephan, Woodworking, WoT.