Deprecate php4 style constructors

PHP7 is deprecating PHP4 style constructors, so we need to modify our code to have _construct methods that fire before the named PHP4 style constructors.  The PHP4 style constructors will call the PHP5 style constructor in case it is being called directly (usually via parent::METHOD).

This modifies external libraries to add PHP5 style constructors, but doesn't add a notice for when they are used.  In WordPress core code, PHP4 style constructors are being given a call to _deprecated_constructor. To the PHP4 style constructor I say "I know that I can't take no more | It ain't no lie | I wanna see you out that door | Baby, bye, bye, bye..."

Upstream: https://wiki.php.net/rfc/remove_php4_constructors

Props jdgrimes, netweb, jorbin
See #31982



git-svn-id: https://develop.svn.wordpress.org/trunk@32990 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Aaron Jorbin
2015-06-28 15:26:41 +00:00
parent 6c8944b6ea
commit 4a60647ab7
19 changed files with 415 additions and 54 deletions

View File

@@ -25,11 +25,21 @@ class MockAction {
var $events;
var $debug;
function MockAction($debug=0) {
/**
* PHP5 constructor.
*/
function __construct( $debug = 0 ) {
$this->reset();
$this->debug = $debug;
}
/**
* PHP4 constructor.
*/
public function MockAction( $debug = 0 ) {
self::__construct( $debug );
}
function reset() {
$this->events = array();
}
@@ -129,7 +139,10 @@ class testXMLParser {
var $xml;
var $data = array();
function testXMLParser($in) {
/**
* PHP5 constructor.
*/
function __construct( $in ) {
$this->xml = xml_parser_create();
xml_set_object($this->xml, $this);
xml_parser_set_option($this->xml,XML_OPTION_CASE_FOLDING, 0);
@@ -138,6 +151,13 @@ class testXMLParser {
$this->parse($in);
}
/**
* PHP4 constructor.
*/
public function testXMLParser( $in ) {
self::__construct( $in );
}
function parse($in) {
$parse = xml_parse($this->xml, $in, sizeof($in));
if (!$parse) {