WordPress.org

Make WordPress Core

Ticket #30006: add_deprecated_property.patch

File add_deprecated_property.patch, 10.0 KB (added by aercolino, 7 years ago)
  • src/wp-includes/functions.php

     
    286286                return false;
    287287        }
    288288        $data = trim( $data );
    289         if ( 'N;' == $data ) {
     289        if ( 'N;' == $data ) {
    290290                return true;
    291291        }
    292292        if ( strlen( $data ) < 4 ) {
     
    25122512
    25132513                        -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
    25142514                        box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
    2515                         vertical-align: top;
     2515                        vertical-align: top;
    25162516                }
    25172517
    25182518                .button.button-large {
     
    25382538                        border-color: #999;
    25392539                        color: #333;
    25402540                        -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
    2541                         box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
     2541                        box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
    25422542                }
    25432543
    25442544                <?php if ( 'rtl' == $text_direction ) : ?>
     
    27682768                  ':arrow:' => 'icon_arrow.gif',
    27692769                  ':shock:' => 'icon_eek.gif',
    27702770                  ':smile:' => 'icon_smile.gif',
    2771                     ':???:' => 'icon_confused.gif',
     2771                        ':???:' => 'icon_confused.gif',
    27722772                   ':cool:' => 'icon_cool.gif',
    27732773                   ':evil:' => 'icon_evil.gif',
    27742774                   ':grin:' => 'icon_biggrin.gif',
     
    27772777                   ':razz:' => 'icon_razz.gif',
    27782778                   ':roll:' => 'icon_rolleyes.gif',
    27792779                   ':wink:' => 'icon_wink.gif',
    2780                     ':cry:' => 'icon_cry.gif',
    2781                     ':eek:' => 'icon_surprised.gif',
    2782                     ':lol:' => 'icon_lol.gif',
    2783                     ':mad:' => 'icon_mad.gif',
    2784                     ':sad:' => 'icon_sad.gif',
    2785                       '8-)' => 'icon_cool.gif',
    2786                       '8-O' => 'icon_eek.gif',
    2787                       ':-(' => 'icon_sad.gif',
    2788                       ':-)' => 'icon_smile.gif',
    2789                       ':-?' => 'icon_confused.gif',
    2790                       ':-D' => 'icon_biggrin.gif',
    2791                       ':-P' => 'icon_razz.gif',
    2792                       ':-o' => 'icon_surprised.gif',
    2793                       ':-x' => 'icon_mad.gif',
    2794                       ':-|' => 'icon_neutral.gif',
    2795                       ';-)' => 'icon_wink.gif',
     2780                        ':cry:' => 'icon_cry.gif',
     2781                        ':eek:' => 'icon_surprised.gif',
     2782                        ':lol:' => 'icon_lol.gif',
     2783                        ':mad:' => 'icon_mad.gif',
     2784                        ':sad:' => 'icon_sad.gif',
     2785                          '8-)' => 'icon_cool.gif',
     2786                          '8-O' => 'icon_eek.gif',
     2787                          ':-(' => 'icon_sad.gif',
     2788                          ':-)' => 'icon_smile.gif',
     2789                          ':-?' => 'icon_confused.gif',
     2790                          ':-D' => 'icon_biggrin.gif',
     2791                          ':-P' => 'icon_razz.gif',
     2792                          ':-o' => 'icon_surprised.gif',
     2793                          ':-x' => 'icon_mad.gif',
     2794                          ':-|' => 'icon_neutral.gif',
     2795                          ';-)' => 'icon_wink.gif',
    27962796                // This one transformation breaks regular text with frequency.
    27972797                //     '8)' => 'icon_cool.gif',
    2798                        '8O' => 'icon_eek.gif',
    2799                        ':(' => 'icon_sad.gif',
    2800                        ':)' => 'icon_smile.gif',
    2801                        ':?' => 'icon_confused.gif',
    2802                        ':D' => 'icon_biggrin.gif',
    2803                        ':P' => 'icon_razz.gif',
    2804                        ':o' => 'icon_surprised.gif',
    2805                        ':x' => 'icon_mad.gif',
    2806                        ':|' => 'icon_neutral.gif',
    2807                        ';)' => 'icon_wink.gif',
    2808                       ':!:' => 'icon_exclaim.gif',
    2809                       ':?:' => 'icon_question.gif',
     2798                           '8O' => 'icon_eek.gif',
     2799                           ':(' => 'icon_sad.gif',
     2800                           ':)' => 'icon_smile.gif',
     2801                           ':?' => 'icon_confused.gif',
     2802                           ':D' => 'icon_biggrin.gif',
     2803                           ':P' => 'icon_razz.gif',
     2804                           ':o' => 'icon_surprised.gif',
     2805                           ':x' => 'icon_mad.gif',
     2806                           ':|' => 'icon_neutral.gif',
     2807                           ';)' => 'icon_wink.gif',
     2808                          ':!:' => 'icon_exclaim.gif',
     2809                          ':?:' => 'icon_question.gif',
    28102810                );
    28112811        }
    28122812
     
    33293329}
    33303330
    33313331/**
     3332 * Mark a property as deprecated and inform when it has been used.
     3333 *
     3334 * There is a hook deprecated_property_run that will be called that can be used
     3335 * to get the backtrace up to what file and function used the deprecated
     3336 * property.
     3337 *
     3338 * The current behavior is to trigger a user error if WP_DEBUG is true.
     3339 *
     3340 * @since X4.2
     3341 * @access private
     3342 *
     3343 * @param string $property The property that was accessed.
     3344 * @param string $version  The version of WordPress that deprecated the argument used.
     3345 * @param string $message  Optional. A message regarding the change. Default null.
     3346 */
     3347function _deprecated_property( $property, $version, $message = null ) {
     3348
     3349        /**
     3350         * Fires when a deprecated property is accessed.
     3351         *
     3352         * @since X4.2
     3353         *
     3354         * @param string $property The property that was accessed.
     3355         * @param string $message  A message regarding the change.
     3356         * @param string $version  The version of WordPress that deprecated the property used.
     3357         */
     3358        do_action( 'deprecated_property_run', $property, $message, $version );
     3359
     3360        /**
     3361         * Filter whether to trigger an error for deprecated properties.
     3362         *
     3363         * @since X4.2
     3364         *
     3365         * @param bool $trigger Whether to trigger the error for deprecated properties. Default true.
     3366         */
     3367        if ( WP_DEBUG && apply_filters( 'deprecated_property_trigger_error', true ) ) {
     3368                if ( function_exists( '__' ) ) {
     3369                        if ( ! is_null( $message ) )
     3370                                trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s! %3$s'), $property, $version, $message ) );
     3371                        else
     3372                                trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.'), $property, $version ) );
     3373                } else {
     3374                        if ( ! is_null( $message ) )
     3375                                trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s! %3$s', $property, $version, $message ) );
     3376                        else
     3377                                trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.', $property, $version ) );
     3378                }
     3379        }
     3380}
     3381
     3382/**
    33323383 * Mark something as being incorrectly called.
    33333384 *
    33343385 * There is a hook doing_it_wrong_run that will be called that can be used
  • tests/phpunit/includes/testcase.php

     
    196196                }
    197197                add_action( 'deprecated_function_run', array( $this, 'deprecated_function_run' ) );
    198198                add_action( 'deprecated_argument_run', array( $this, 'deprecated_function_run' ) );
    199                 add_action( 'doing_it_wrong_run', array( $this, 'doing_it_wrong_run' ) );
     199                add_action( 'deprecated_property_run', array( $this, 'deprecated_function_run' ) );
     200                add_action( 'doing_it_wrong_run',      array( $this, 'doing_it_wrong_run' ) );
     201
    200202                add_action( 'deprecated_function_trigger_error', '__return_false' );
    201203                add_action( 'deprecated_argument_trigger_error', '__return_false' );
     204                add_action( 'deprecated_property_trigger_error', '__return_false' );
    202205                add_action( 'doing_it_wrong_trigger_error',      '__return_false' );
    203206        }
    204207
  • tests/phpunit/tests/functions/deprecated.php

     
    2323        protected $_deprecated_arguments = array();
    2424
    2525        /**
     26         * List of properties that have been passed through _deprecated_property()
     27         * @var string[]
     28         */
     29        protected $_deprecated_properties = array();
     30
     31        /**
    2632         * List of files that have been passed through _deprecated_file()
    2733         * @var string[]
    2834         */
     
    3440         */
    3541        public function setUp() {
    3642                parent::setUp();
     43
    3744                $this->_deprecated_functions = array();
    38                 $this->_deprecated_arguments = array();
    39                 $this->_deprecated_files = array();
    4045                add_action( 'deprecated_function_run' , array( $this, 'deprecated_function' ), 10, 3 );
    4146                add_action( 'deprecated_function_trigger_error', '__return_false' );
     47
     48                $this->_deprecated_arguments = array();
    4249                add_action( 'deprecated_argument_run' , array( $this, 'deprecated_argument' ), 10, 3 );
    4350                add_action( 'deprecated_argument_trigger_error', '__return_false' );
     51
     52                $this->_deprecated_properties = array();
     53                add_action( 'deprecated_property_run' , array( $this, 'deprecated_property' ), 10, 3 );
     54                add_action( 'deprecated_property_trigger_error', '__return_false' );
     55
     56                $this->_deprecated_files = array();
    4457                add_action( 'deprecated_file_included' , array( $this, 'deprecated_file' ), 10, 4 );
    4558                add_action( 'deprecated_file_trigger_error', '__return_false' );
    4659        }
     
    5265        public function teardown() {
    5366                remove_action( 'deprecated_function_run' , array( $this, 'deprecated_function' ), 10, 3 );
    5467                remove_action( 'deprecated_function_trigger_error', '__return_false' );
     68
    5569                remove_action( 'deprecated_argument_run' , array( $this, 'deprecated_argument' ), 10, 3 );
    5670                remove_action( 'deprecated_argument_trigger_error', '__return_false' );
    57                 remove_action( 'deprecated_file_included' , array( $this, 'deprecated_argument' ), 10, 4 );
     71
     72                remove_action( 'deprecated_property_run' , array( $this, 'deprecated_property' ), 10, 3 );
     73                remove_action( 'deprecated_property_trigger_error', '__return_false' );
     74
     75                remove_action( 'deprecated_file_included' , array( $this, 'deprecated_file' ), 10, 4 );
    5876                remove_action( 'deprecated_file_trigger_error', '__return_false' );
     77
    5978                parent::tearDown();
    6079        }
    6180
     
    90109        }
    91110
    92111        /**
    93          * Catch arguments that have passed through _deprecated_argument
    94          * @param string $argument
     112         * Catch arguments that have passed through _deprecated_property
     113         * @param string $property
    95114         * @param string $message
    96115         * @param float $version
    97116         * @return void
    98117         */
    99         public function deprecated_file( $file, $version, $replacement, $message ) {
     118        public function deprecated_property( $property, $message, $version ) {
     119                $this->_deprecated_properties[] = array(
     120                        'property' => $property,
     121                        'message'  => $message,
     122                        'version'  => $version
     123                );
     124        }
     125
     126        /**
     127         * Catch arguments that have passed through _deprecated_file
     128         * @param string $file
     129         * @param string $message
     130         * @param float $version
     131         * @param string $replacement
     132         * @return void
     133         */
     134        public function deprecated_file( $file, $replacement, $version, $message ) {
    100135                $this->_deprecated_files[] = array(
    101136                        'file'        => $file,
    102137                        'version'     => $version,
     
    113148         */
    114149        protected function was_deprecated( $type, $name ) {
    115150                switch ( $type ) {
     151                        case 'property' :
     152                                $search = $this->_deprecated_properties;
     153                                $key    = 'property';
     154                                break;
    116155                        case 'argument' :
    117156                                $search = $this->_deprecated_arguments;
    118157                                $key    = 'argument';