80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| 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
 | 
