shardj / zf1-future
Zend Framework 1. The aim is to keep ZF1 working with the latest PHP versions
Requires
- php: >=7.4
- symfony/polyfill-ctype: ^1.30
- symfony/polyfill-mbstring: ^1.30
- symfony/polyfill-php81: ^1.30
- symfony/polyfill-php82: ^1.30
- symfony/polyfill-php83: ^1.30
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- php-parallel-lint/php-parallel-lint: ^1.3
- phpcompatibility/php-compatibility: dev-develop
- phpstan/phpstan: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^9
- rector/rector: ^2.0
- yoast/phpunit-polyfills: ^2.0
Suggests
- ext-mbstring: Multibyte strings handling
Provides
None
Conflicts
None
Replaces
- zendframework/zendframework1: >=1.12.20
- 1.26.0
- 1.25.3
- 1.25.2
- 1.25.1
- 1.25.0
- 1.24.5
- 1.24.4
- 1.24.3
- 1.24.2
- 1.24.1
- 1.24.0
- 1.23.5
- 1.23.4
- 1.23.3
- 1.23.2
- 1.23.0
- 1.22.1
- 1.22.0
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
- 1.21.0
- 1.20.2
- 1.20.1
- 1.20.0
- 1.19.5
- 1.19.4
- 1.19.3
- 1.19.2
- 1.19.1
- 1.19.0
- 1.18.11
- 1.18.10
- 1.18.9
- 1.18.8
- 1.18.7
- 1.18.6
- 1.18.5
- 1.18.4
- 1.18.3
- 1.18.2
- 1.18.1
- 1.18
- 1.17.2
- 1.17.1
- 1.17.0
- 1.16.2
- 1.16.1
- 1.16.0
- 1.15.2
- 1.15.1
- 1.15.0
- 1.14.6
- 1.14.5
- 1.14.4
- 1.14.3
- 1.14.2
- 1.14.1
- 1.14.0
- 1.13.1
- 1.13.0
- dev-master / 1.12.x-dev
- 1.12.20
- 1.12.19
- 1.12.18
- 1.12.17
- 1.12.16
- 1.12.15
- 1.12.14
- 1.12.13
- 1.12.12
- 1.12.11
- 1.12.10
- 1.12.9
- 1.12.8
- 1.12.7
- 1.12.6
- 1.12.5
- 1.12.4
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
This package is auto-updated.
Last update: 2026-11-05 01:18:18 UTC
README
Thanks to WebTigers for the logo
Zend Framework 1 now for PHP 8.3!
Classic ZF1 Reborn
Zend may have abandoned the original Zend Framework, but the global Zend Framework Community has not! Since Zend sentenced ZF1 to EOL, the Zend Framework community around the globe has continued to work and build on what we consider to be one of the best PHP frameworks of all time. Framework is supported and tested on PHP 7.4 up to 8.3. PHP 8.4 and 8.5 are part of the regular test suite as well, but may still show deprecation notices; PHP 8.6 is tested as experimental.
ZF1-Future Sponsors
Products and Projects built with ZF1-Future:
Creators of the Tiger Development Platform featuring ZF1-Future
Creators of Seiden PHP+ for IBM i featuring ZF1-Future
ZF1 is Now Version 1.26!
Over 250 updates and bug fixes since 1.12!
The ZF1 community has been hard at work updating Zend Framework with all of the latest features of 8.3.
Documentation
New ZF1-Future Manual: ZF1-Future Docs
Original Docs
The original docs can be found here: https://framework.zend.com/manual/1.12/en/manual.html
Installation
Installable through git clone or through
composer require shardj/zf1-future https://packagist.org/packages/shardj/zf1-future
Composer is the recommended way. If you install from git or from a release archive without Composer, add the library directory to your include_path and make sure the ctype and mbstring extensions are enabled. The Symfony polyfills from composer.json are not loaded in that case.
System Requirements
ZF1 Future runs on any version of PHP between 7.4 and 8.3. PHP 8.4 and 8.5 are tested as well and work in practice, but are not officially supported yet; PHP 8.6 is experimental (see the test matrix in .github/workflows/phpunit.yml).
License
The files in this archive are released under the Zend Framework license. You can find a copy of this license in LICENSE.txt.
Related Projects
- ZF1 Extras Future
- ZF1s - Another community supported continuation of ZF1, with a focus on splitting the frameworks original components into individual packages
Mail: OAuth 2.0 (XOAUTH2) for Gmail and Microsoft 365
Since 1.26.0 Zend_Mail authenticates with an OAuth 2.0 access token where a password is no longer accepted: 'auth' => 'xoauth2' with username and accessToken in Zend_Mail_Transport_Smtp, and accessToken instead of password in Zend_Mail_Storage_Imap / Zend_Mail_Storage_Pop3. Obtaining and refreshing the token is up to the application (e.g. with league/oauth2-google or thenetworg/oauth2-azure).
Security
unserialize()and CVE-2020-29312. The CVE describes no specific flaw in this library (it names a non-existent version 3.1.3, gives no affected class and no reference, and is marked as disputed by NVD); it restates thatunserialize()of untrusted data is unsafe in PHP, whatever classes are loaded. ZF1-Future itself never unserializes request data. Where it unserializes data it wrote itself (cache metadata, locale and date caches, OpenID storage, Lucene index files) it passesallowed_classestounserialize()since 1.26.0, so no object can be instantiated from such a file. Cache content stored withautomatic_serialization,Zend_Serializer, sessions and the priority queues keep unserializing objects, because that is what they are for. In your application: never callunserialize()(orZend_Serializer::unserialize()) on data a user can influence; use JSON for data exchange; for your own serialized data use theunserialize_class_whitelistoption ofZend_Serializer_Adapter_PhpSerializeand/or an HMAC. See #341
Known issues and solutions
Bootstrap error: Unable to resolve plugin "useragent"; no corresponding plugin with that name
Fixed in 1.26.0 (#407). On older versions the resource file has to be renamed toZend/Application/Resource/Useragent.php, see #92Zend_Test_PHPUnit_Db(database fixtures for PHPUnit) is not supported. It extends the DbUnit classesPHPUnit_Extensions_Database_*, which only exist for PHPUnit 5 and older; the component is shipped as is, without tests, and is not adapted to the DbUnit forks for current PHPUnit versions (their classes are namespaced and typed). Applications that need DbUnit have to use such a fork directly, see #412