wp/wp-includes/Requests/src/Port.php
changeset 21 48c4eec2b7e6
equal deleted inserted replaced
20:7b1b88e27a20 21:48c4eec2b7e6
       
     1 <?php
       
     2 /**
       
     3  * Port utilities for Requests
       
     4  *
       
     5  * @package Requests\Utilities
       
     6  * @since   2.0.0
       
     7  */
       
     8 
       
     9 namespace WpOrg\Requests;
       
    10 
       
    11 use WpOrg\Requests\Exception;
       
    12 use WpOrg\Requests\Exception\InvalidArgument;
       
    13 
       
    14 /**
       
    15  * Find the correct port depending on the Request type.
       
    16  *
       
    17  * @package Requests\Utilities
       
    18  * @since   2.0.0
       
    19  */
       
    20 final class Port {
       
    21 
       
    22 	/**
       
    23 	 * Port to use with Acap requests.
       
    24 	 *
       
    25 	 * @var int
       
    26 	 */
       
    27 	const ACAP = 674;
       
    28 
       
    29 	/**
       
    30 	 * Port to use with Dictionary requests.
       
    31 	 *
       
    32 	 * @var int
       
    33 	 */
       
    34 	const DICT = 2628;
       
    35 
       
    36 	/**
       
    37 	 * Port to use with HTTP requests.
       
    38 	 *
       
    39 	 * @var int
       
    40 	 */
       
    41 	const HTTP = 80;
       
    42 
       
    43 	/**
       
    44 	 * Port to use with HTTP over SSL requests.
       
    45 	 *
       
    46 	 * @var int
       
    47 	 */
       
    48 	const HTTPS = 443;
       
    49 
       
    50 	/**
       
    51 	 * Retrieve the port number to use.
       
    52 	 *
       
    53 	 * @param string $type Request type.
       
    54 	 *                     The following requests types are supported:
       
    55 	 *                     'acap', 'dict', 'http' and 'https'.
       
    56 	 *
       
    57 	 * @return int
       
    58 	 *
       
    59 	 * @throws \WpOrg\Requests\Exception\InvalidArgument When a non-string input has been passed.
       
    60 	 * @throws \WpOrg\Requests\Exception                 When a non-supported port is requested ('portnotsupported').
       
    61 	 */
       
    62 	public static function get($type) {
       
    63 		if (!is_string($type)) {
       
    64 			throw InvalidArgument::create(1, '$type', 'string', gettype($type));
       
    65 		}
       
    66 
       
    67 		$type = strtoupper($type);
       
    68 		if (!defined("self::{$type}")) {
       
    69 			$message = sprintf('Invalid port type (%s) passed', $type);
       
    70 			throw new Exception($message, 'portnotsupported');
       
    71 		}
       
    72 
       
    73 		return constant("self::{$type}");
       
    74 	}
       
    75 }