Make WordPress Core

Changeset 37657


Ignore:
Timestamp:
06/08/2016 04:13:04 AM (9 years ago)
Author:
jeremyfelt
Message:

Multisite: Allow access to network and site properties using current naming conventions

  • Add magic __get(), __set(), and __isset() methods to WP_Site and `WP_Network.
  • Provide (int) $network->site_id for (string) $network->blog_id
  • Provide (int) $site->id for (string) $site->blog_id
  • Provide (int) $site->network_id for (string) $site->site_id

Props flixos90, jeremyfelt.
Fixes #36717.

Location:
trunk/src/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-network.php

    r37492 r37657  
    1818 *
    1919 * @since 4.4.0
     20 *
     21 * @property int $site_id
    2022 */
    2123class WP_Network {
     
    5961     *
    6062     * @since 4.4.0
    61      * @access public
    62      * @var string
    63      */
    64     public $blog_id = 0;
     63     * @access private
     64     * @var string
     65     */
     66    private $blog_id = 0;
    6567
    6668    /**
     
    136138        $this->_set_site_name();
    137139        $this->_set_cookie_domain();
     140    }
     141
     142    /**
     143     * Getter.
     144     *
     145     * Allows current multisite naming conventions when getting properties.
     146     *
     147     * @since 4.6.0
     148     * @access public
     149     *
     150     * @param string $key Property to get.
     151     * @return mixed Value of the property. Null if not available.
     152     */
     153    public function __get( $key ) {
     154        switch ( $key ) {
     155            case 'blog_id':
     156                return $this->blog_id;
     157            case 'site_id':
     158                return (int) $this->blog_id;
     159        }
     160
     161        return null;
     162    }
     163
     164    /**
     165     * Isset-er.
     166     *
     167     * Allows current multisite naming conventions when checking for properties.
     168     *
     169     * @since 4.6.0
     170     * @access public
     171     *
     172     * @param string $key Property to check if set.
     173     * @return bool Whether the property is set.
     174     */
     175    public function __isset( $key ) {
     176        switch( $key ) {
     177            case 'blog_id':
     178            case 'site_id':
     179                return true;
     180        }
     181
     182        return false;
     183    }
     184
     185    /**
     186     * Setter.
     187     *
     188     * Allows current multisite naming conventions while setting properties.
     189     *
     190     * @since 4.6.0
     191     * @access public
     192     *
     193     * @param string $key   Property to set.
     194     * @param mixed  $value Value to assign to the property.
     195     */
     196    public function __set( $key, $value ) {
     197        switch( $key ) {
     198            case 'blog_id':
     199            case 'site_id':
     200                $this->blog_id = (string) $value;
     201                break;
     202            default:
     203                $this->$key = $value;
     204        }
    138205    }
    139206
  • trunk/src/wp-includes/class-wp-site.php

    r37468 r37657  
    1515 *
    1616 * @since 4.5.0
     17 *
     18 * @property int $id
     19 * @property int $network_id
    1720 */
    1821final class WP_Site {
     
    2427     *
    2528     * @since 4.5.0
    26      * @access public
    27      * @var string
    28      */
    29     public $blog_id;
     29     * @access private
     30     * @var string
     31     */
     32    private $blog_id;
    3033
    3134    /**
     
    5659     *
    5760     * @since 4.5.0
    58      * @access public
    59      * @var string
    60      */
    61     public $site_id = '0';
     61     * @access private
     62     * @var string
     63     */
     64    private $site_id = '0';
    6265
    6366    /**
     
    211214        return get_object_vars( $this );
    212215    }
     216
     217    /**
     218     * Getter.
     219     *
     220     * Allows current multisite naming conventions when getting properties.
     221     *
     222     * @since 4.6.0
     223     * @access public
     224     *
     225     * @param string $key Property to get.
     226     * @return mixed Value of the property. Null if not available.
     227     */
     228    public function __get( $key ) {
     229        switch ( $key ) {
     230            case 'id':
     231                return (int) $this->blog_id;
     232            case 'blog_id':
     233                return $this->blog_id;
     234            case 'site_id':
     235                return $this->site_id;
     236            case 'network_id':
     237                return (int) $this->site_id;
     238        }
     239
     240        return null;
     241    }
     242
     243    /**
     244     * Isset-er.
     245     *
     246     * Allows current multisite naming conventions when checking for properties.
     247     *
     248     * @since 4.6.0
     249     * @access public
     250     *
     251     * @param string $key Property to check if set.
     252     * @return bool Whether the property is set.
     253     */
     254    public function __isset( $key ) {
     255        switch ( $key ) {
     256            case 'id':
     257            case 'blog_id':
     258            case 'site_id':
     259            case 'network_id':
     260                return true;
     261        }
     262
     263        return false;
     264    }
     265
     266    /**
     267     * Setter.
     268     *
     269     * Allows current multisite naming conventions while setting properties.
     270     *
     271     * @since 4.6.0
     272     * @access public
     273     *
     274     * @param string $key   Property to set.
     275     * @param mixed  $value Value to assign to the property.
     276     */
     277    public function __set( $key, $value ) {
     278        switch( $key ) {
     279            case 'id':
     280            case 'blog_id':
     281                $this->blog_id = (string) $value;
     282                break;
     283            case 'site_id':
     284            case 'network_id':
     285                $this->site_id = (string) $value;
     286                break;
     287            default:
     288                $this->$key = $value;
     289        }
     290    }
    213291}
Note: See TracChangeset for help on using the changeset viewer.