Changeset 37861
- Timestamp:
- 06/25/2016 07:56:19 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/functions.php
r37717 r37861 3894 3894 3895 3895 /** 3896 * Marks a deprecated action or filter hook as deprecated and throws a notice. 3897 * 3898 * Use the 'deprecated_hook_run' action to get the backtrace describing where the 3899 * deprecated hook was called. 3900 * 3901 * Default behavior is to trigger a user error if WP_DEBUG is true. 3902 * 3903 * This function is called by the do_action_deprecated() and apply_filters_deprecated() 3904 * functions, and so generally does not need to be called directly. 3905 * 3906 * @since 4.6.0 3907 * @access private 3908 * 3909 * @param string $hook The hook that was used. 3910 * @param string $version The version of WordPress that deprecated the hook. 3911 * @param string $replacement Optional. The hook that should have been used. 3912 * @param string $message Optional. A message regarding the change. 3913 */ 3914 function _deprecated_hook( $hook, $version, $replacement = null, $message = null ) { 3915 /** 3916 * Fires when a deprecated hook is called. 3917 * 3918 * @since 4.6.0 3919 * 3920 * @param string $hook The hook that was called. 3921 * @param string $replacement The hook that should be used as a replacement. 3922 * @param string $version The version of WordPress that deprecated the argument used. 3923 * @param string $message A message regarding the change. 3924 */ 3925 do_action( 'deprecated_hook_run', $hook, $replacement, $version, $message ); 3926 3927 /** 3928 * Filter whether to trigger deprecated hook errors. 3929 * 3930 * @since 4.6.0 3931 * 3932 * @param bool $trigger Whether to trigger deprecated hook errors. Requires 3933 * `WP_DEBUG` to be defined true. 3934 */ 3935 if ( WP_DEBUG && apply_filters( 'deprecated_hook_trigger_error', true ) ) { 3936 $message = empty( $message ) ? '' : ' ' . $message; 3937 if ( ! is_null( $replacement ) ) { 3938 trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.' ), $hook, $version, $replacement ) . $message ); 3939 } else { 3940 trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.' ), $hook, $version ) . $message ); 3941 } 3942 } 3943 } 3944 3945 /** 3896 3946 * Mark something as being incorrectly called. 3897 3947 * -
trunk/src/wp-includes/plugin.php
r37674 r37861 654 654 function remove_all_actions($tag, $priority = false) { 655 655 return remove_all_filters($tag, $priority); 656 } 657 658 /** 659 * Fires functions attached to a deprecated filter hook. 660 * 661 * When a filter hook is deprecated, the apply_filters() call is replaced with 662 * apply_filters_deprecated(), which triggers a deprecation notice and then fires 663 * the original filter hook. 664 * 665 * @since 4.6.0 666 * 667 * @see _deprecated_hook() 668 * 669 * @param string $tag The name of the filter hook. 670 * @param array $args Array of additional function arguments to be passed to apply_filters(). 671 * @param string $version The version of WordPress that deprecated the hook. 672 * @param string $replacement Optional. The hook that should have been used. 673 * @param string $message Optional. A message regarding the change. 674 */ 675 function apply_filters_deprecated( $tag, $args, $version, $replacement = false, $message = null ) { 676 if ( ! has_filter( $tag ) ) { 677 return; 678 } 679 680 _deprecated_hook( $tag, $version, $replacement, $message ); 681 682 return apply_filters_ref_array( $tag, $args ); 683 } 684 685 /** 686 * Fires functions attached to a deprecated action hook. 687 * 688 * When an action hook is deprecated, the do_action() call is replaced with 689 * do_action_deprecated(), which triggers a deprecation notice and then fires 690 * the original hook. 691 * 692 * @since 4.6.0 693 * 694 * @see _deprecated_hook() 695 * 696 * @param string $tag The name of the action hook. 697 * @param array $args Array of additional function arguments to be passed to do_action(). 698 * @param string $version The version of WordPress that deprecated the hook. 699 * @param string $replacement Optional. The hook that should have been used. 700 * @param string $message Optional. A message regarding the change. 701 */ 702 function do_action_deprecated( $tag, $args, $version, $replacement = false, $message = null ) { 703 if ( ! has_action( $tag ) ) { 704 return; 705 } 706 707 _deprecated_hook( $tag, $version, $replacement, $message ); 708 709 do_action_ref_array( $tag, $args ); 656 710 } 657 711 -
trunk/tests/phpunit/includes/testcase.php
r37319 r37861 310 310 add_action( 'deprecated_function_run', array( $this, 'deprecated_function_run' ) ); 311 311 add_action( 'deprecated_argument_run', array( $this, 'deprecated_function_run' ) ); 312 add_action( 'deprecated_hook_run', array( $this, 'deprecated_function_run' ) ); 312 313 add_action( 'doing_it_wrong_run', array( $this, 'doing_it_wrong_run' ) ); 313 314 add_action( 'deprecated_function_trigger_error', '__return_false' ); 314 315 add_action( 'deprecated_argument_trigger_error', '__return_false' ); 316 add_action( 'deprecated_hook_trigger_error', '__return_false' ); 315 317 add_action( 'doing_it_wrong_trigger_error', '__return_false' ); 316 318 } -
trunk/tests/phpunit/tests/actions.php
r37588 r37861 420 420 $this->assertFalse( doing_filter( 'something_else' ) ); 421 421 } 422 423 /** 424 * @ticket 10441 425 * @expectedDeprecated tests_do_action_deprecated 426 */ 427 public function test_do_action_deprecated() { 428 $p = new WP_Post( (object) array( 'post_title' => 'Foo' ) ); 429 430 add_action( 'tests_do_action_deprecated', array( __CLASS__, 'deprecated_action_callback' ) ); 431 do_action_deprecated( 'tests_do_action_deprecated', array( $p ), '4.6' ); 432 remove_action( 'tests_do_action_deprecated', array( __CLASS__, 'deprecated_action_callback' ) ); 433 434 $this->assertSame( 'Bar', $p->post_title ); 435 } 436 437 public static function deprecated_action_callback( $p ) { 438 $p->post_title = 'Bar'; 439 } 440 441 /** 442 * @ticket 10441 443 * @expectedDeprecated tests_do_action_deprecated 444 */ 445 public function test_do_action_deprecated_with_multiple_params() { 446 $p1 = new WP_Post( (object) array( 'post_title' => 'Foo1' ) ); 447 $p2 = new WP_Post( (object) array( 'post_title' => 'Foo2' ) ); 448 449 add_action( 'tests_do_action_deprecated', array( __CLASS__, 'deprecated_action_callback_multiple_params' ), 10, 2 ); 450 do_action_deprecated( 'tests_do_action_deprecated', array( $p1, $p2 ), '4.6' ); 451 remove_action( 'tests_do_action_deprecated', array( __CLASS__, 'deprecated_action_callback_multiple_params' ), 10, 2 ); 452 453 $this->assertSame( 'Bar1', $p1->post_title ); 454 $this->assertSame( 'Bar2', $p2->post_title ); 455 } 456 457 public static function deprecated_action_callback_multiple_params( $p1, $p2 ) { 458 $p1->post_title = 'Bar1'; 459 $p2->post_title = 'Bar2'; 460 } 461 462 /** 463 * @ticket 10441 464 * @expectedDeprecated tests_apply_filters_deprecated 465 */ 466 public function test_apply_filters_deprecated() { 467 $p = 'Foo'; 468 469 add_filter( 'tests_apply_filters_deprecated', array( __CLASS__, 'deprecated_filter_callback' ) ); 470 $p = apply_filters_deprecated( 'tests_apply_filters_deprecated', array( $p ), '4.6' ); 471 remove_filter( 'tests_apply_filters_deprecated', array( __CLASS__, 'deprecated_filter_callback' ) ); 472 473 $this->assertSame( 'Bar', $p ); 474 } 475 476 public static function deprecated_filter_callback( $p ) { 477 $p = 'Bar'; 478 return $p; 479 } 480 481 /** 482 * @ticket 10441 483 * @expectedDeprecated tests_apply_filters_deprecated 484 */ 485 public function test_apply_filters_deprecated_with_multiple_params() { 486 $p1 = 'Foo1'; 487 $p2 = 'Foo2'; 488 489 add_filter( 'tests_apply_filters_deprecated', array( __CLASS__, 'deprecated_filter_callback_multiple_params' ), 10, 2 ); 490 $p1 = apply_filters_deprecated( 'tests_apply_filters_deprecated', array( $p1, $p2 ), '4.6' ); 491 remove_filter( 'tests_apply_filters_deprecated', array( __CLASS__, 'deprecated_filter_callback_multiple_params' ), 10, 2 ); 492 493 $this->assertSame( 'Bar1', $p1 ); 494 495 // Not passed by reference, so not modified. 496 $this->assertSame( 'Foo2', $p2 ); 497 } 498 499 public static function deprecated_filter_callback_multiple_params( $p1, $p2 ) { 500 $p1 = 'Bar1'; 501 $p2 = 'Bar2'; 502 503 return $p1; 504 } 422 505 }
Note: See TracChangeset
for help on using the changeset viewer.