Add access modifier to methods/members in WP_oEmbed. Adds a magic __call() method for BC.

See #27881, #22234.

Built from https://develop.svn.wordpress.org/trunk@28507


git-svn-id: http://core.svn.wordpress.org/trunk@28333 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Scott Taylor 2014-05-19 05:37:13 +00:00
parent d6e5fcab4d
commit 27e8d17be2

View File

@ -18,14 +18,14 @@
* @since 2.9.0 * @since 2.9.0
*/ */
class WP_oEmbed { class WP_oEmbed {
var $providers = array(); public $providers = array();
/** /**
* Constructor * Constructor
* *
* @uses apply_filters() Filters a list of pre-defined oEmbed providers. * @uses apply_filters() Filters a list of pre-defined oEmbed providers.
*/ */
function __construct() { public function __construct() {
$providers = array( $providers = array(
'#http://(www\.)?youtube\.com/watch.*#i' => array( 'http://www.youtube.com/oembed', true ), '#http://(www\.)?youtube\.com/watch.*#i' => array( 'http://www.youtube.com/oembed', true ),
'#https://(www\.)?youtube\.com/watch.*#i' => array( 'http://www.youtube.com/oembed?scheme=https', true ), '#https://(www\.)?youtube\.com/watch.*#i' => array( 'http://www.youtube.com/oembed?scheme=https', true ),
@ -76,6 +76,18 @@ class WP_oEmbed {
add_filter( 'oembed_dataparse', array($this, '_strip_newlines'), 10, 3 ); add_filter( 'oembed_dataparse', array($this, '_strip_newlines'), 10, 3 );
} }
/**
* Make private/protected methods readable for backwards compatibility
*
* @since 4.0.0
* @param string $name
* @param array $arguments
* @return mixed
*/
public function __call( $name, $arguments ) {
return call_user_func_array( array( $this, $name ), $arguments );
}
/** /**
* The do-it-all function that takes a URL and attempts to return the HTML. * The do-it-all function that takes a URL and attempts to return the HTML.
* *
@ -87,7 +99,7 @@ class WP_oEmbed {
* @param array $args Optional arguments. Usually passed from a shortcode. * @param array $args Optional arguments. Usually passed from a shortcode.
* @return bool|string False on failure, otherwise the UNSANITIZED (and potentially unsafe) HTML that should be used to embed. * @return bool|string False on failure, otherwise the UNSANITIZED (and potentially unsafe) HTML that should be used to embed.
*/ */
function get_html( $url, $args = '' ) { public function get_html( $url, $args = '' ) {
$provider = false; $provider = false;
if ( !isset($args['discover']) ) if ( !isset($args['discover']) )
@ -132,7 +144,7 @@ class WP_oEmbed {
* @param string $url The URL that should be inspected for discovery <link> tags. * @param string $url The URL that should be inspected for discovery <link> tags.
* @return bool|string False on failure, otherwise the oEmbed provider URL. * @return bool|string False on failure, otherwise the oEmbed provider URL.
*/ */
function discover( $url ) { public function discover( $url ) {
$providers = array(); $providers = array();
// Fetch URL content // Fetch URL content
@ -198,7 +210,7 @@ class WP_oEmbed {
* @param array $args Optional arguments. Usually passed from a shortcode. * @param array $args Optional arguments. Usually passed from a shortcode.
* @return bool|object False on failure, otherwise the result in the form of an object. * @return bool|object False on failure, otherwise the result in the form of an object.
*/ */
function fetch( $provider, $url, $args = '' ) { public function fetch( $provider, $url, $args = '' ) {
$args = wp_parse_args( $args, wp_embed_defaults() ); $args = wp_parse_args( $args, wp_embed_defaults() );
$provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider ); $provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider );
@ -234,7 +246,7 @@ class WP_oEmbed {
* @param string $format Format to use * @param string $format Format to use
* @return bool|object False on failure, otherwise the result in the form of an object. * @return bool|object False on failure, otherwise the result in the form of an object.
*/ */
function _fetch_with_format( $provider_url_with_args, $format ) { private function _fetch_with_format( $provider_url_with_args, $format ) {
$provider_url_with_args = add_query_arg( 'format', $format, $provider_url_with_args ); $provider_url_with_args = add_query_arg( 'format', $format, $provider_url_with_args );
$response = wp_safe_remote_get( $provider_url_with_args ); $response = wp_safe_remote_get( $provider_url_with_args );
if ( 501 == wp_remote_retrieve_response_code( $response ) ) if ( 501 == wp_remote_retrieve_response_code( $response ) )
@ -251,7 +263,7 @@ class WP_oEmbed {
* @since 3.0.0 * @since 3.0.0
* @access private * @access private
*/ */
function _parse_json( $response_body ) { private function _parse_json( $response_body ) {
return ( ( $data = json_decode( trim( $response_body ) ) ) && is_object( $data ) ) ? $data : false; return ( ( $data = json_decode( trim( $response_body ) ) ) && is_object( $data ) ) ? $data : false;
} }
@ -261,7 +273,7 @@ class WP_oEmbed {
* @since 3.0.0 * @since 3.0.0
* @access private * @access private
*/ */
function _parse_xml( $response_body ) { private function _parse_xml( $response_body ) {
if ( ! function_exists( 'libxml_disable_entity_loader' ) ) if ( ! function_exists( 'libxml_disable_entity_loader' ) )
return false; return false;
@ -318,7 +330,7 @@ class WP_oEmbed {
* @param string $url The URL to the content that is desired to be embedded. * @param string $url The URL to the content that is desired to be embedded.
* @return bool|string False on error, otherwise the HTML needed to embed. * @return bool|string False on error, otherwise the HTML needed to embed.
*/ */
function data2html( $data, $url ) { public function data2html( $data, $url ) {
if ( ! is_object( $data ) || empty( $data->type ) ) if ( ! is_object( $data ) || empty( $data->type ) )
return false; return false;
@ -373,7 +385,7 @@ class WP_oEmbed {
* @param string $url The original URL passed to oEmbed. * @param string $url The original URL passed to oEmbed.
* @return string Possibly modified $html * @return string Possibly modified $html
*/ */
function _strip_newlines( $html, $data, $url ) { private function _strip_newlines( $html, $data, $url ) {
if ( false !== strpos( $html, "\n" ) ) if ( false !== strpos( $html, "\n" ) )
$html = str_replace( array( "\r\n", "\n" ), '', $html ); $html = str_replace( array( "\r\n", "\n" ), '', $html );