Skip to content

2026 Summer release

Choose a tag to compare

@Sunvas Sunvas released this 25 Jun 20:47
· 12 commits to main since this release

Eleanor PHP Library 4.0

This release finalizes the planned major changes for version 4.0, including API cleanup, new utility classes, improved MySQL handling, template API refinements, and documentation polishing.

Added

  • Added the Otp class for two-factor authentication support
  • Introduced the CLI class for colored terminal output
  • Added a second $level parameter to QuietExecution() for selective error suppression
  • Added __invoke() support to the Assign class
  • Added ArrayAccess implementation to the Assign class
  • Added support for arguments in $Creator for the Assign class
  • Introduced new error type EM::OTHER for cases not covered by existing error categories
  • Added automatic cleanup of mysqli_stmt and mysqli_result objects in the MySQL class
  • Added NULL value support to the Where() method

Changed

  • Renamed Assign::For() to Assign::Bind()
  • Renamed Uri::GetURI() to Uri::Clean()
  • Renamed Uri::$current to Uri::$raw
  • Renamed the Serialize cache class to Serialized
  • Refactored the Append and Template classes for a cleaner and more expressive API:
    • Template sources are now added via $Tpl[] = 'source'; instead of $Tpl->queue[] = 'source';
    • Default template variables are now assigned via $Tpl['key'] = 'value'; instead of $Tpl->default['key'] = 'value';
  • Improved the Files class implementation
  • Improved internal code logic across multiple components
  • Applied minor micro-optimizations

Fixed

  • Fixed incorrect file identification in the Shmop cache engine
  • Prevented automatic closing of externally provided MySQLi instances
  • Replaced JSON-encoded exception input information with a printed input dump representation

Removed

  • Removed the Punycode class and PUNYCODE constant due to limited practical adoption of IDN support
  • Removed the Html class in favor of Vue.js-based form rendering
  • Removed the Translit() method from the Ru class
  • Removed the Telegram class due to Telegram's migration to JWT-based external authentication, which cannot be reliably validated without third-party dependencies

Documentation

  • Improved explanations for the library directory structure
  • Refined comments for better clarity, precision, and conciseness

Docs polished with help from Codex.
Code review by Alice AI.

Full Changelog: 3.0...4.0