6.0.0-beta13
4/14/26

[[toc]]

  • Backward Compatibility Breaking Horde Issues (aka Horde 4.0 TODO)
  • Fix cloning behavior (See Bug 1410).

  • Remove IMAP_Tree::.

  • Move IMP_IMAPClient:: to Horde.

  • Merge IMP_Thread:: to IMAP_Thread::.

  • Refactor IMP_IMAPClient:: and IMAP_ACL::.

  • Encrypt deprecations in Horde_Crypt_pgp::.

  • Use one place for clear text sendmail error messages.

  • rename files in imp/templates/prefs to more sensible defaults (e.g. draftsfolderselect.inc, not folderselect.inc)

  • Remove {{$foo = &new Foo();}} calls and replace with {{$foo = new Foo();}} - The former is deprecated as of PHP 5 and causes errors when strict code checking is on.

  • Remove IMP_Template::.

  • Move share edit form into framework package to make it extendable.

  • Convert all configuration files to XML format.

  • Remove IMP_IMAP_Search:: and Ingo_IMAP_Search::.

  • Remove imap_reopen() call in IMAP_Search::.

  • Make getType() return values consistent in iCalendar::.

  • Move date/time parsing methods from iCalendar:: to Horde_Date::.

  • Checkboxes in Horde_Form that are marked as required should be required to be checked.

  • Remove IMP_SpellChecker::.

  • Add a single function for changing the language (handle the bindTextDomain() call also)

  • Remove hack to fix app-specific Notification_Listeners that output

    instead of

  • (in Notification/Listender/status.php).

  • Prefix all classes with Horde_ that don't have that prefix yet (also see http://www.php.net/manual/en/userlandnaming.php).

  • Filter all input through filter extension of library.

  • Escape all template tags by default.

  • Use phone form fields, i.e. in Turba.

  • Use exceptions instead of PEAR_Errors.

  • Clean up Horde::loadConfiguration() mess.

  • Consistent return types (array vs. timestamp) in Horde_iCalendar::_parse*() methods.

  • Clean up VFS_sql to use '/' as the root of the VFS instead of ''. This will make it behave like the other VFS backends without code to do the conversion.

  • Set the cache expiration time when the entry is set

++ MIME issues

  • Remove deprecated code in MIME_Headers::

  • Remove BC mime_drivers code in MIME_Viewer::, IMP_Contents::, MIMP_Contents::.

  • Make MIME::_rfc822encode() a public function.

  • Make MIME_Viewers responsible for retrieving part contents (so they can determine whether or not contents should be retrieved at all and/or cached).

++ !JavaScript

  • Remove last traces of enter_key_trap.js

  • Remove code like hideable.js that is encapsulated by Prototype (or whatever js toolkit 4.0 uses standard)

  • Global Prototype/Scriptaculous libraries.

  • Remove app-specific 'stripe.js' files.

  • Remove app-specific 'open_calendar.js' files and extra code in Horde's open_calendar.js.

  • Replace horde's popup.js with IMP's version.

  • Basically consolidate all js present in multiple apps

  • Put core javascript into a package so it can be versioned/upgraded?

++ Bugs

  • Bug [http://bugs.horde.org/ticket/?id=4221 4221].

++ To discuss

  • Use Horde_Template for all templates.

  • use __autoload() instead of require_once

  • Using a global __autoload() function is not good practice for a framework because you can only have one __autoload function - I'm not in favor of it (ChuckHagenbuch).

  • Using it in Horde apps as opposed to the framework is an option, but still leaves us all of the framework requires.

  • http://php.net/spl-autoload-register is a potential solution. With PHP 5.1.x (or 5.2, or ...) as a minimum version requiring SPL should be okay.

  • Performance a consideration? http://pooteeweet.org/blog/538/

  • RemoveGlobals

  • HordeSpaces

  • Require UTF-8 support

  • Remove confusing mess of hooks and other ways of muddling logins (especially with IMP), and replace them all with the preauthenticate and postauthenticate hooks + appropriate examples for things like vhosting.

  • Clean up tobackend/frombackend hooks - either remove them, or name them better, or document when and where they need to be called.

  • Get rid of 'realms' (replace with HordeSpaces where necessary).

  • Remove imp['uniquser'] ?

  • Horde4Config

  • Per-variable session locks? http://thwartedefforts.org/2006/11/11/race-conditions-with-ajax-and-php-sessions/