PageRenderTime 22ms CodeModel.GetById 11ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 1ms

/wp-includes/class-wp-http-requests-hooks.php

https://bitbucket.org/skyarch-iijima/wordpress
PHP | 76 lines | 19 code | 7 blank | 50 comment | 1 complexity | aa3272d047c217607e311ec06ec308bf MD5 | raw file
 1<?php
 2/**
 3 * HTTP API: Requests hook bridge class
 4 *
 5 * @package WordPress
 6 * @subpackage HTTP
 7 * @since 4.7.0
 8 */
 9
10/**
11 * Bridge to connect Requests internal hooks to WordPress actions.
12 *
13 * @since 4.7.0
14 *
15 * @see Requests_Hooks
16 */
17class WP_HTTP_Requests_Hooks extends Requests_Hooks {
18	/**
19	 * Requested URL.
20	 *
21	 * @var string Requested URL.
22	 */
23	protected $url;
24
25	/**
26	 * WordPress WP_HTTP request data.
27	 *
28	 * @var array Request data in WP_Http format.
29	 */
30	protected $request = array();
31
32	/**
33	 * Constructor.
34	 *
35	 * @param string $url URL to request.
36	 * @param array $request Request data in WP_Http format.
37	 */
38	public function __construct( $url, $request ) {
39		$this->url = $url;
40		$this->request = $request;
41	}
42
43	/**
44	 * Dispatch a Requests hook to a native WordPress action.
45	 *
46	 * @param string $hook Hook name.
47	 * @param array $parameters Parameters to pass to callbacks.
48	 * @return boolean True if hooks were run, false if nothing was hooked.
49	 */
50	public function dispatch( $hook, $parameters = array() ) {
51		$result = parent::dispatch( $hook, $parameters );
52
53		// Handle back-compat actions
54		switch ( $hook ) {
55			case 'curl.before_send':
56				/** This action is documented in wp-includes/class-wp-http-curl.php */
57				do_action_ref_array( 'http_api_curl', array( &$parameters[0], $this->request, $this->url ) );
58				break;
59		}
60
61		/**
62		 * Transforms a native Request hook to a WordPress actions.
63		 *
64		 * This action maps Requests internal hook to a native WordPress action.
65		 *
66		 * @see https://github.com/rmccue/Requests/blob/master/docs/hooks.md
67		 *
68		 * @param array $parameters Parameters from Requests internal hook.
69		 * @param array $request Request data in WP_Http format.
70		 * @param string $url URL to request.
71		 */
72		do_action_ref_array( "requests-{$hook}", $parameters, $this->request, $this->url );
73
74		return $result;
75	}
76}