The person behind PHP Opc Ua.
A pure-PHP OPC UA ecosystem, built to connect web developers to industrial protocols without C extensions, JVMs or bridges. This is who maintains it — and how you can join.
Creator & maintainer
Gianfrancesco Aurecchia
PHP developer with a focus on industrial automation and IoT. Built PHP Opc Ua to bridge the gap between the web ecosystem and industrial protocols — making OPC UA accessible to every PHP developer without requiring C extensions or external dependencies.
Why PHP Opc Ua exists
OPC UA is the dominant protocol in industrial automation, but the PHP ecosystem had no native client.
The gap
Before this project, talking to PLCs from PHP meant C extensions (painful to deploy), HTTP-to-OPC gateways (extra infrastructure), or shelling out to other languages (complexity that grows with every integration).
The fix
The OPC UA binary protocol is implemented end-to-end in PHP — secure channels, sessions, 10 security policies, 47 PSR-14 events. One composer require and your Laravel or Symfony app talks to PLCs, SCADA systems and sensors directly.
The origin
It started as a personal need — connecting a PHP-based manufacturing dashboard to Siemens PLCs — and grew into a complete ecosystem covering the full OPC UA specification, with framework bridges and test infrastructure.
The ecosystem today.
147k
Lines of PHP
2,649
Tests
5,204
Assertions
8
Packages
The people who build it.
Names appear here as members are added to the project.
Get involved.
There are 147,000 lines of PHP behind this ecosystem — and plenty of ways to help shape where it goes next.
You speak OPC UA
Industrial automation engineer who can spot a wrong NodeId, a non-canonical extension object, or a security policy oddity? Your eyes are the most valuable here.
You speak Laravel / Symfony
Improve the framework integrations — better DI patterns, queue jobs that subscribe to OPC UA streams, Filament resources, Telescope panels.
You speak prose
Docs that don't suck are vanishingly rare in this space. Rewrite an explanation, fix a broken example, add a recipe — the docs hub auto-publishes from every package repo on tag.
Pick an issue. Open a PR. Or just drop a message. Every contribution counts.