zendframework/zend-authentication
Zend\Authentication provides a flexible authentication API with adapters for common scenarios. This repository was abandoned on 2019-12-31 and has moved to laminas/laminas-authentication. Documentation: docs.zendframework.com/zend-authentication.
Architecture fit: The package remains part of the archived Zend Framework (now Laminas) ecosystem, fundamentally incompatible with Laravel’s native Illuminate\Auth system. Laravel’s authentication stack adheres to PSR standards and leverages Eloquent, middleware, and session handling natively, while this package enforces Zend’s proprietary abstractions (e.g., Zend\Authentication\AdapterInterface). The architectural misalignment persists, requiring custom adapters that violate Laravel’s convention-over-configuration principles. The new release (2.7.0) introduces no changes to core interfaces or Laravel-compatible patterns.
Integration feasibility: Still extremely low. The package’s interfaces (e.g., Authentication validators, Basic scheme handlers) remain incompatible with Laravel’s Authenticatable contract or Illuminate\Contracts\Auth. The new "custom authentication result codes" feature (#47) and Basic scheme re-challenge logic (#42) are Zend-specific optimizations with no Laravel integration path. Migrating to this package would still necessitate rewriting core auth logic, breaking middleware, and duplicating session/Eloquent integrations.
Technical risk: High and unchanged. While the release adds PHP 7.3 support (now 5 years outdated), it does not address:
zend-stdlib v3+ is now required, but Laravel relies on Symfony components).
The removal of zend-stdlib v2 support (#44) further isolates the package from modern ecosystems. The lack of fixes for known vulnerabilities and no PHP 8.x guarantees make this package operationally unsafe for production.Key questions:
ThrottlesLogins, Rememberable, or Sanctum for API auth).Stack fit: Still incompatible. Laravel’s authentication stack is built on:
Illuminate\Contracts\Auth\Authenticatable (Eloquent models).Illuminate\Auth\Guard (session/database drivers).Illuminate\Session and Illuminate\Cookie for session handling.
This package’s Zend\Authentication\Storage and Adapter interfaces are not interchangeable. The new "custom validation codes" (#47) and Basic auth changes (#42) are Zend-centric and require a full rewrite to adapt to Laravel’s middleware pipeline (e.g., Authenticate middleware).Migration path: Not viable. The only plausible path is:
spatie/laravel-permission for RBAC).
The new release does not provide Laravel-specific integration tools or PSR-15 middleware support.Compatibility: None. Key conflicts persist:
zend-stdlib v3+ is now required, but Laravel’s symfony/* dependencies (e.g., symfony/http-foundation) are incompatible.ServiceProvider to register Laravel’s container bindings (e.g., AuthManager).Sequencing: Avoid entirely. If legacy Zend code must coexist:
Maintenance: High burden, unchanged. The team would need to:
Support: None. The archived status means:
Scaling: Risky and unsustainable. While the package’s new Basic auth re-challenge (#42) might handle edge cases, it introduces:
Failure modes: Critical risks persist:
composer install failures).Ramp-up: High cost, unchanged. Onboarding would require:
Zend\Authentication\Result, AdapterInterface, and custom validators—skills irrelevant to Laravel’s Authenticatable contract.laravel/socialite).How can I help you explore Laravel packages today?