WordPress.org

Make WordPress Core

Ticket #16782: 16782.4.patch

File 16782.4.patch, 3.5 KB (added by hakre, 7 years ago)

Like previous plus WP_Error extending Exception

  • wp-includes/class-wp-error.php

     
    1818 * @package WordPress
    1919 * @since 2.1.0
    2020 */
    21 class WP_Error {
     21class WP_Error extends Exception {
    2222        /**
    2323         * Stores the list of errors.
    2424         *
    2525         * @since 2.1.0
    2626         * @var array
    27          * @access private
    2827         */
    29         var $errors = array();
     28        private $errors = array();
    3029
    3130        /**
    3231         * Stores the list of data for error codes.
    3332         *
    3433         * @since 2.1.0
    3534         * @var array
    36          * @access private
    3735         */
    38         var $error_data = array();
     36        private $error_data = array();
    3937
    4038        /**
    4139         * PHP4 Constructor - Sets up error message.
     
    5250         * @param string|int $code Error code
    5351         * @param string $message Error message
    5452         * @param mixed $data Optional. Error data.
    55          * @return WP_Error
     53         * @throws WP_Exception on missing code
    5654         */
    57         function WP_Error($code = '', $message = '', $data = '') {
     55        public function __construct($code = '', $message = '', $data = '') {
    5856                if ( empty($code) )
    59                         return;
     57                        throw new WP_Error( '', 'Code parameter is missing.' );
    6058
    61                 $this->errors[$code][] = $message;
    62 
    63                 if ( ! empty($data) )
    64                         $this->error_data[$code] = $data;
     59                parent::__construct( $message );
     60                $this->add( $code, $message, $data );           
    6561        }
    6662
    6763        /**
    6864         * Retrieve all error codes.
    6965         *
    7066         * @since 2.1.0
    71          * @access public
    7267         *
    7368         * @return array List of error codes, if avaiable.
    7469         */
    75         function get_error_codes() {
     70        public function get_error_codes() {
    7671                if ( empty($this->errors) )
    7772                        return array();
    7873
     
    8378         * Retrieve first error code available.
    8479         *
    8580         * @since 2.1.0
    86          * @access public
    8781         *
    8882         * @return string|int Empty string, if no error codes.
    8983         */
    90         function get_error_code() {
     84        public function get_error_code() {
    9185                $codes = $this->get_error_codes();
    9286
    9387                if ( empty($codes) )
     
    10498         * @param string|int $code Optional. Retrieve messages matching code, if exists.
    10599         * @return array Error strings on success, or empty array on failure (if using codee parameter).
    106100         */
    107         function get_error_messages($code = '') {
     101        public function get_error_messages($code = '') {
    108102                // Return all messages if no code specified.
    109103                if ( empty($code) ) {
    110104                        $all_messages = array();
     
    131125         * @param string|int $code Optional. Error code to retrieve message.
    132126         * @return string
    133127         */
    134         function get_error_message($code = '') {
     128        public function get_error_message($code = '') {
    135129                if ( empty($code) )
    136130                        $code = $this->get_error_code();
    137131                $messages = $this->get_error_messages($code);
     
    148142         * @param string|int $code Optional. Error code.
    149143         * @return mixed Null, if no errors.
    150144         */
    151         function get_error_data($code = '') {
     145        public function get_error_data($code = '') {
    152146                if ( empty($code) )
    153147                        $code = $this->get_error_code();
    154148
     
    161155         * Append more error messages to list of error messages.
    162156         *
    163157         * @since 2.1.0
    164          * @access public
    165158         *
    166159         * @param string|int $code Error code.
    167160         * @param string $message Error message.
    168161         * @param mixed $data Optional. Error data.
    169162         */
    170         function add($code, $message, $data = '') {
     163        public function add($code, $message, $data = '') {
    171164                $this->errors[$code][] = $message;
    172165                if ( ! empty($data) )
    173166                        $this->error_data[$code] = $data;
     
    183176         * @param mixed $data Error data.
    184177         * @param string|int $code Error code.
    185178         */
    186         function add_data($data, $code = '') {
     179        public function add_data($data, $code = '') {
    187180                if ( empty($code) )
    188181                        $code = $this->get_error_code();
    189182