6.0.0-git
2024-04-23

Diff for Horde4/BCBreaking between 60 and 61

[[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.

* Similarly, don't pass objects by reference ( function foo(&$bar) )

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

* Convert all configuration files to XML format.format (or to a unified conf.yaml, or an annotated conf.php - either way, something the config interface can universally manage and generate)

* Remove IMP_IMAP_Search:: and Ingo_IMAP_Search::.

* Remove imap_reopen() call in IMAP_Search::.

* 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 <p> instead of <li> (in Notification/Listener/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 or library.

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

* Use exceptions instead of PEAR_Errors.

* Clean up Horde::loadConfiguration() mess.

* 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

* Don't let Horde_Crypt_pgp methods check for secure connection.

* Remove pref_api BC files

* Fix Horde_Cache_file:: to accept mixed $data, instead of just a string.

* Use file_put_contents() exclusively if we require PHP 5+.

 * http://lists.horde.org/archives/dev/Week-of-Mon-20070305/021221.html

* Refactor Horde_iCalendar

 * Users shouldn't have to deal with property names, formatting, escaping, versions, etc.

 * Make getType() return values consistent.

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

 * Move date/time parsing methods to Horde_Date::.



++ 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).

* Don't link MIME icons to Viewers - show icons no matter what viewers are installed/enabled/etc.



++ VFS

* Use/learn from http://www.php.net/~helly/php/ext/spl/

* Specifically !DirectoryIterator, !SPLFileInfo, !SplFileObject, ...



++ !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?

* Remove print.js in favor of just window.print



++ Templates

* Remove IMP_Template, Ingo_Template, and Gollem_Template.

* Replace all templates with a Horde_View class, with a default of simple PHP templates

* Introduce templates for ALL HTML generated in libraries

* Figure out how to handle templates for framework packages

* Default HTML Horde_View should escape all output (htmlspecialchars)



++ Bugs

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

* Bug [http://bugs.horde.org/ticket/?id=3271 3271] - more specifically, how to deal with addition of configspecial tags. Of course, this depends on what changes are made to Horde's configuration design.

* Un-stall all tickets with Horde 4/IMP 5/etc. milestones



++ To discuss

* Template system (Horde_Template? something else?)

* 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/

* Use 1 login screen for all apps? (i.e. Horde_Login:: library)