Файл: htmlpurifier-4.3.0/docs/dev-config-bcbreaks.txt
Строк: 136
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