|
-
- Configuration Backwards-Compatibility Breaks
-
- In version 4.0.0, the configuration subsystem (composed of the outwards
- facing Config class, as well as the ConfigSchema and ConfigSchema_Interchange
- subsystems), was significantly revamped to make use of property lists.
- While most of the changes are internal, some internal APIs were changed for the
- sake of clarity. HTMLPurifier_Config was kept completely backwards compatible,
- although some of the functions were retrofitted with an unambiguous alternate
- syntax. Both of these changes are discussed in this document.
-
-
-
- 1. Outwards Facing Changes
- --------------------------------------------------------------------------------
-
- The HTMLPurifier_Config class now takes an alternate syntax. The general rule
- is:
-
- If you passed $namespace, $directive, pass "$namespace.$directive"
- instead.
-
- An example:
-
- $config->set('HTML', 'Allowed', 'p');
-
- becomes:
-
- $config->set('HTML.Allowed', 'p');
-
- New configuration options may have more than one namespace, they might
- look something like %Filter.YouTube.Blacklist. While you could technically
- set it with ('HTML', 'YouTube.Blacklist'), the logical extension
- ('HTML', 'YouTube', 'Blacklist') does not work.
-
- The old API will still work, but will emit E_USER_NOTICEs.
-
-
-
- 2. Internal API Changes
- --------------------------------------------------------------------------------
-
- Some overarching notes: we've completely eliminated the notion of namespace;
- it's now an informal construct for organizing related configuration directives.
-
- Also, the validation routines for keys (formerly "$namespace.$directive")
- have been completely relaxed. I don't think it really should be necessary.
-
- 2.1 HTMLPurifier_ConfigSchema
-
- First off, if you're interfacing with this class, you really shouldn't.
- HTMLPurifier_ConfigSchema_Builder_ConfigSchema is really the only class that
- should ever be creating HTMLPurifier_ConfigSchema, and HTMLPurifier_Config the
- only class that should be reading it.
-
- All namespace related methods were removed; they are completely unnecessary
- now. Any $namespace, $name arguments must be replaced with $key (where
- $key == "$namespace.$name"), including for addAlias().
-
- The $info and $defaults member variables are no longer indexed as
- [$namespace][$name]; they are now indexed as ["$namespace.$name"].
-
- All deprecated methods were finally removed, after having yelled at you as
- an E_USER_NOTICE for a while now.
-
- 2.2 HTMLPurifier_ConfigSchema_Interchange
-
- Member variable $namespaces was removed.
-
- 2.3 HTMLPurifier_ConfigSchema_Interchange_Id
-
- Member variable $namespace and $directive removed; member variable $key added.
- Any method that took $namespace, $directive now takes $key.
-
- 2.4 HTMLPurifier_ConfigSchema_Interchange_Namespace
-
- Removed.
-
- vim: et sw=4 sts=4
|