]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/class-wp-http-requests-hooks.php
WordPress 4.7
[autoinstalls/wordpress.git] / wp-includes / class-wp-http-requests-hooks.php
diff --git a/wp-includes/class-wp-http-requests-hooks.php b/wp-includes/class-wp-http-requests-hooks.php
new file mode 100644 (file)
index 0000000..108fae8
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * HTTP API: Requests hook bridge class
+ *
+ * @package WordPress
+ * @subpackage HTTP
+ * @since 4.7.0
+ */
+
+/**
+ * Bridge to connect Requests internal hooks to WordPress actions.
+ *
+ * @package WordPress
+ * @subpackage HTTP
+ * @since 4.7.0
+ */
+class WP_HTTP_Requests_Hooks extends Requests_Hooks {
+       /**
+        * Requested URL.
+        *
+        * @var string Requested URL.
+        */
+       protected $url;
+
+       /**
+        * WordPress WP_HTTP request data.
+        *
+        * @var array Request data in WP_Http format.
+        */
+       protected $request = array();
+
+       /**
+        * Constructor.
+        *
+        * @param string $url URL to request.
+        * @param array $request Request data in WP_Http format.
+        */
+       public function __construct( $url, $request ) {
+               $this->url = $url;
+               $this->request = $request;
+       }
+
+       /**
+        * Dispatch a Requests hook to a native WordPress action.
+        *
+        * @param string $hook Hook name.
+        * @param array $parameters Parameters to pass to callbacks.
+        * @return boolean True if hooks were run, false if nothing was hooked.
+        */
+       public function dispatch( $hook, $parameters = array() ) {
+               $result = parent::dispatch( $hook, $parameters );
+
+               // Handle back-compat actions
+               switch ( $hook ) {
+                       case 'curl.before_send':
+                               /** This action is documented in wp-includes/class-wp-http-curl.php */
+                               do_action_ref_array( 'http_api_curl', array( $parameters[0], $this->request, $this->url ) );
+                               break;
+               }
+
+               /**
+                * Transforms a native Request hook to a WordPress actions.
+                *
+                * This action maps Requests internal hook to a native WordPress action.
+                *
+                * @see https://github.com/rmccue/Requests/blob/master/docs/hooks.md
+                *
+                * @param array $parameters Parameters from Requests internal hook.
+                * @param array $request Request data in WP_Http format.
+                * @param string $url URL to request.
+                */
+               do_action_ref_array( "requests-{$hook}", $parameters, $this->request, $this->url );
+
+               return $result;
+       }
+}