zendframework/zend-captcha
The zend-captcha component provides CAPTCHA generation and validation for Zend Framework and PHP applications. It includes image, word, and Figlet adapters, configurable options, and form integration helpers for adding human-verification challenges to user input.
CaptchaService interface so providers can be swapped without touching product code.Consider it only when:
laminas/laminas-captcha, the maintained fork, which is close to a drop-in replacement.Look elsewhere when:
mews/captcha, anhskohbo/no-captcha, Laravel's RateLimiter plus a honeypot field, or Turnstile. Less code, maintained supply chain.For executives: This is an archived CAPTCHA component inherited from Zend Framework — permissively licensed (BSD-3), tiny community (~25 stars), and last shipped in June 2019 with no security response process. It is not a candidate for new product work. It is defensible only as a short-term bridge if we are already running Zend Framework, and even then the maintained Laminas fork is the safer target. Recommendation: classify it as technical debt, not a strategic dependency, and budget a replacement (hosted challenge or Laravel-native controls) in the next planning cycle.
For engineering: Adopting this means taking on an unmaintained dependency: no patches, PHP-version drift risk, GD/font asset requirements, and zero Laravel integration — you would hand-write the service provider, configuration, view bindings, and asset pipeline. The adapter interface is clean and the license is permissive, so on an existing ZF2/ZF3 stack the move to laminas-captcha is close to drop-in and should be the default. On Laravel, the cheaper and more accessible path is mews/captcha or Turnstile combined with rate limiting and a honeypot: less code, better accessibility, and a maintained supply chain.
How can I help you explore Laravel packages today?