Backward Compatibility Breaking Horde Issues (aka Horde 4.0 TODO)
- Fix cloning behavior (See Bug 1410).
- Remove deprecated code in IMAP_Tree::.
- Move IMP_IMAPClient:: to Horde.
- Merge IMP_Thread:: to IMAP_Thread::.
- 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 deprecated code in MIME_Headers::
- 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::.
- Remove app-specific 'stripe.js' files.
- Move share edit form into framework package to make it extendable.
- Convert all configuration files to XML format.
- Replace horde's popup.js with IMP's version.
- 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::.
- Remove BC mime_drivers code in MIME_Viewer::, IMP_Contents::, MIMP_Contents::, Troll_Contents::.
- 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)
- Make MIME::_rfc822encode() a public function.
To discuss
- use __autoload() instead of require_once
- Refactor to remove all global variables and other couplings with global state ($_SESSION, $_REQUEST, singleton pattern, etc). We can do this by:
- Encapsulting request in a request object
- Instantiate master Horde object (e.g. $horde = new Horde($config);)
- Instantiate application object (e.g. $app = new Turba($horde,$config);)
- Page handling become method object (e.g. $page = new Turba_BrowsePage($app, $request); $page->execute();)