6.0.0-git
2024-05-08

Diff for Doc/Dev/ConversionH4 between 2 and 3

[[toc]]

+ H4 Conversion !HowTo

Items that need to be converted...

++ Authentication

Remove AUTH_HANDLER - use Horde_Registry::appInit() 'authentication' option instead.
Remove $session_control - use Horde_Registry::appInit() 'session_control' option instead

++ Autoloading

Convert files/libraries to be able to be autoloaded.
Remove require/include calls within the code.

++ CLI

Use Horde_Registry::appInit(), with the 'cli' option, to initialize CLI scripts.

++ Configuration files

Add $Id$ tag to all conf/*.php.dist and conf/*.xml files

++ Convert Base files

No more lib/base.php, lib/api.php, lib/version.php.  Converted to lib/Application.php and lib/Api.php

++ Convert to PHP 5

TODO
instanceof instead of is_a()

++ CVS remnants

No need for $Horde$ in header comments.
Remove CVS directories.
Remove .cvsignore

++ Constants

Constants should be namespaced - preferably within the utility class (e.g. lib/App.php).

++ Documentation

Update documentation.

++ Globals

Remove all use of globals within the application (use injector instead).

++ Injector Usage

Various Horde libraries now must be loaded via the injector.

++ Javascript

ALL javascript should be in js/.  NO javscript (if at all possible) should be contained in scripts/templates.

++ Log handling

Log constants have changed.

++ Mail library

PEAR's Mail library has been replaced by Horde_Mail.

++ MIME library

The MIME library has been rewritten - most calls to the library will probably need to be changed.

++ Output buffering

Convert from Util::bufferOutput() -> Horde::startBuffer()

++ PEAR_Error

Remove PEAR_Error usage - convert to Exceptions.
Each application should define a APP_Exception library that extends Horde_Exception.

++ Prefs UI

No more lib/prefs.php - now uses Horde_Registry_Application calls.
Update config/prefs.php.dist to remove unneeded entries.

++ Test script

No longer uses test.php - converted to lib/Test.php.

++ Themes

TODO

++ Url generation

Use Horde_Url:: instead of Horde_Util::addParameter()/Horde_Util::removeParameter().