Block.php: replace '*' with explicit fields in selects
authorumherirrender <umherirrender_de.wp@web.de>
Fri, 25 May 2012 14:50:57 +0000 (16:50 +0200)
committerumherirrender <umherirrender_de.wp@web.de>
Fri, 25 May 2012 14:50:57 +0000 (16:50 +0200)
It is good practice to select only fields, which are used later

Change-Id: I50d149b3ecd3a9e0325fecbe8d0b6e1fff353893

includes/Block.php

index 7cdc756..51d22ee 100644 (file)
@@ -126,17 +126,42 @@ class Block {
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->selectRow(
                        'ipblocks',
-                       '*',
+                       self::selectFields(),
                        array( 'ipb_id' => $id ),
                        __METHOD__
                );
                if ( $res ) {
-                       return Block::newFromRow( $res );
+                       return self::newFromRow( $res );
                } else {
                        return null;
                }
        }
 
+       /**\r
+        * Return the list of ipblocks fields that should be selected to create\r
+        * a new block.\r
+        * @return array\r
+        */\r
+       public static function selectFields() {\r
+               return array(\r
+                       'ipb_id',
+                       'ipb_address',
+                       'ipb_by',
+                       'ipb_by_text',
+                       'ipb_reason',
+                       'ipb_timestamp',
+                       'ipb_auto',
+                       'ipb_anon_only',
+                       'ipb_create_account',
+                       'ipb_enable_autoblock',
+                       'ipb_expiry',
+                       'ipb_deleted',
+                       'ipb_block_email',
+                       'ipb_allow_usertalk',
+                       'ipb_parent_block_id',\r
+               );\r
+       }
+
        /**
         * Check if two blocks are effectively equal.  Doesn't check irrelevant things like
         * the blocking user or the block timestamp, only things which affect the blocked user   *
@@ -247,7 +272,7 @@ class Block {
                        }
                }
 
-               $res = $db->select( 'ipblocks', '*', $conds, __METHOD__ );
+               $res = $db->select( 'ipblocks', self::selectFields(), $conds, __METHOD__ );
 
                # This result could contain a block on the user, a block on the IP, and a russian-doll
                # set of rangeblocks.  We want to choose the most specific one, so keep a leader board.
@@ -260,7 +285,7 @@ class Block {
                $bestBlockPreventsEdit = null;
 
                foreach( $res as $row ){
-                       $block = Block::newFromRow( $row );
+                       $block = self::newFromRow( $row );
 
                        # Don't use expired blocks
                        if( $block->deleteIfExpired() ){