Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Php Zkteco Laravel Package

taha-rafi/php-zkteco

A PHP library for communicating with ZKTeco biometric attendance and access control devices over the network. Connect to a device to read user records, attendance logs, and device info, sync time, and manage settings, giving PHP applications a simple way to pull and work with data from ZKTeco termin...

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on time & attendance ingestion. This package is a "buy the plumbing, build the product" option: it removes weeks of reverse-engineering the ZKTeco binary protocol (TCP/UDP, CommKey auth, CMD_SET_DATA/CMD_TIME_ATTLOG_DELE) and lets the team spend roadmap budget on scheduling, approvals, and payroll export instead of socket framing.
  • Hardware standardization / procurement. Because the package speaks the native protocol rather than a vendor SDK, it becomes an input to the device-purchase decision: if we standardize on ZKTeco terminals, this library is the integration layer; if we standardize elsewhere, it is dead weight. Sequence the hardware decision before the engineering decision.
  • Pull vs. push architecture (the biggest architectural fork in this release). v2.1.0 ships both a polling client (we connect to devices over TCP/UDP) and a built-in ADMS server (devices push to us, including over cloud POST with HMAC-SHA256-signed webhooks). That is a product decision, not just a technical one: polling suits single-site/on-prem deployments behind a firewall; ADMS push suits multi-site, NAT'd, or franchise/cloud topologies. Choose per deployment tier, and price/support accordingly.
  • Write-back to hardware as a feature, not a chore. Direct ATT_LOG writing (3001) and selective attendance-log deletion (10005) unlock user-facing features we would otherwise defer: correcting a missed punch at the terminal, remote re-enrollment, GDPR-style "delete this person's records from the device" as a one-click admin action, and decommissioning a device without leaving personal data on it.
  • Offline-first / low-connectivity segments. Devices buffer locally and sync; this makes field sites, factories, warehouses, and clinics with unreliable internet addressable without a mobile app — a roadmap expansion that would otherwise require a different product line.
  • Compliance and data-residency decisions. Attendance records are personal data and, on fingerprint devices, biometric-adjacent. The package keeps data on our infrastructure (self-hosted, no third-party attendance cloud), which supports GDPR/data-residency positioning and lets us scope retention and deletion. Budget for legal review of biometric consent and retention — the library gives you deletion primitives, not a compliance program.
  • Platform-upgrade planning. Laravel 8–12 auto-discovery, facade, and a publishable config/zkteco.php mean near-zero integration cost for a Laravel team, and the package won't block a framework upgrade. Treat "supports 8–12" as compatibility, not security support — Laravel 8–10 and PHP 8.0 are past end-of-life, so our own supported-version floor should be set independently (recommend Laravel 11/12 on PHP 8.2+).

When to Consider This Package

Consider it when:

  • We already own, or are committed to buying, ZKTeco terminals — or we control hardware procurement and can standardize on them.
  • The requirement is genuine device-level integration (enrollment sync, punch ingest, remote log correction/deletion, multi-device fleet management), not just "a clock-in button."
  • Deployment is self-hosted/on-prem or hybrid, and a third-party attendance SaaS is disqualified on cost, data residency, or per-seat pricing at scale.
  • The stack is Laravel/PHP and we want the integration to be a config-published dependency rather than an in-house protocol team.
  • We need both topologies (polling for on-prem customers, ADMS push for cloud/multi-site) without maintaining two codebases.
  • Low-connectivity sites are on the roadmap.

Look elsewhere when:

  • No ZKTeco hardware in the estate, or procurement can't commit — the value is 100% hardware-coupled. Cross-vendor needs (Suprema, Hikvision, Anviz, HID) mean a middleware/aggregator or per-vendor adapters instead.
  • We want a finished time-and-attendance product (scheduling, leave, overtime rules, payroll connectors, audit trails) — this is transport and device I/O, not an HR system. Expect to build the domain layer ourselves.
  • Mobile/geo/QR clock-in is the primary use case; phones don't speak this protocol.
  • We require vendor-backed SLAs, indemnities, and a support contract. This is a community package: no commercial support, no CVE process, no roadmap commitment.
  • The team has no appetite for operating network-adjacent infrastructure — an ADMS server means accepting inbound connections from devices, with certificate/TLS, firewall, and HMAC key-rotation work that lands on us, not the vendor.
  • Biometric processing is in scope and we cannot resource the legal/security review; or the environment forbids biometric capture entirely.

Watch items before committing: single-maintainer/bus-factor risk; no published security policy; CI matrix proves tests run on PHP 8.0–8.4, not that a hardened release process exists. Pin versions, vendor the code, and require a written fallback plan (manual CSV export from devices) if the package stalls.

How to Pitch It (Stakeholders)

To executives (one paragraph): We can add device-level time-and-attendance to the product in weeks instead of quarters. This library already implements the ZKTeco hardware protocol — including the newer capability to push data from devices to our cloud, signed and verified — so we avoid both a six-figure integration build and per-employee SaaS fees, and we keep employee data in our own environment, which strengthens our compliance story. The trade-off is a dependency on one hardware vendor and on an open-source package without a commercial support contract; both are manageable with version pinning and a documented manual fallback. Ask: approve ZKTeco as the standard terminal vendor (or confirm the estate), and fund a short legal/security review of biometric data handling.

To engineering (one paragraph): v2.1.0 is a Laravel-native drop-in: auto-discovered service provider, ZKTeco facade, and a publishable config/zkteco.php, tested across PHP 8.0–8.4, with the full v2.0 surface included — TCP and UDP transport, CommKey auth, raw attendance-log write (3001) and selective log deletion (10005), cloud POST sync, an embedded ADMS server, and HMAC-SHA256-signed webhooks. Estimate accordingly: the protocol work is done; our effort goes into (a) the domain layer — users, shifts, corrections, payroll export; (b) operating the ADMS endpoint securely — inbound device traffic, key management and rotation, replay/idempotency handling on webhooks; (c) integration tests against real hardware in CI, since the automated matrix only proves the suite runs, not that a device answers. Set our own baseline at Laravel 11/12 on PHP 8.2+ despite broader advertised support, pin the dependency, and document the manual-export fallback.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums