2012-02-21 125 views
0

我正在创建一个旨在简单而快速的PHP授权框架。我的问题是简单的,我希望只有一个包含需要使用它,但是只有一个包含它可能会加载不必要的功能。所以我的问题是哪一个更好,包括所有导致更多内存被使用的函数,或者包含一个文件,该文件具有包含该函数的功能,从而导致更小的不必要的功能,但会占用更多的CPU使用量?包括未使用的全部功能或许多包括

例如我的登录功能,如下所示:

function login ($submit ='login', $user = 'user', $pass = 'pass') { 
    if ($_POST[$submit]){ 

     $user = $_POST[$user]; 
    $pass = $_POST[$pass]; 

    if ($user && $pass){ //if user and pass is enterered 

      require("auth_vars.php"); //require MySQL conection settings 
      mysql_connect($auth_mysql_server, $auth_mysql_user, $auth_mysql_pass); //connect to MySQL 
     mysql_select_db($auth_mysql_db); // select MySQL database 

      $pass = md5($pass); // hash password 

      $query = mysql_query("SELECT * FROM $auth_mysql_table WHERE user='$user'"); // run query 
      $numrows = mysql_num_rows($query); 

      if ($numrows == 1){ //check if user exists 
       $row = mysql_fetch_assoc ($query); 
       $dbid = $row[$auth_mysql_id_row]; 
        $dbuser = $row[$auth_mysql_user_row]; 
        $dbpass = $row[$auth_mysql_pass_row]; 

        if ($pass == $dbpass){ // if password is equal to the one in the database start session 
         //set session information 
         $_SESSION['userid'] = $dbid; 
         $_SESSION['username'] = $dbuser; 


         header("Location:$auth_path_loggedin"); // goto logged in page 

        } 
        else return (3); 
      } 
      else return (2); 

      mysql_close(); // close MySql connection 
     } 
     else return (1); 
}else { 
    // If the user clicks the "Log Out" link. 
    if(isset($_GET['status']) && $_GET['status'] == 'loggedout') { 
     logout();//logout 
     return 4; 
     //else if the user is denied 
    }else if(isset($_GET['status']) && $_GET['status'] == 'denied') { 
     logout(); //to keep it clean in case of errors 
     return 5; 
    } 
}} 

现在的情况下,不需要登录功能,这将是更好做到这一点:

function login ($submit ='login', $user = 'user', $pass = 'pass') { 
    include ("myloginfunction.php"); 
    login_function($submit, $user, $pass); 
} 

或将使用到大量不必要的CPU使用量与包含整个功能所需的内存量相比较

回答

1

两种方法都不如t他其他。通过将mysql连接的创建移出登录函数,您可能会获得更多,以便所有SQL查询都使用同一个连接,并创建多个连接。