smart_twists
چهارشنبه 22 خرداد 1392, 08:38 صبح
سلام
دوستان و اساتید عزیز من در زمینه شی گرایی یکم مشکل دارم. یک کلاس برای بخش کاربران نوشتم که یه سری توابع درونش هست.
سوال من اینه که واسه توابع باید از صفات کلاس استفاده کرد یا اینکه آرگومان ورودی داشته باشند؟!! مثلا واسه تابع Add کد زیر ، روش استاندارد چی هست؟!!
برای مثال من برای حذف یک کاربر ابتدا یک شی از کلاس میسازم و بعد تابع SetID رو فراخوانی میکنم و بعد تابع Delete رو فراخوانی میکنم. آیا این روش درستی هست؟!! روش استاندارد چیه؟!!
<?php
/**
* Description of users
*
* @author Saeed
*/
require_once 'connection.php';
class users {
private $_id;
private $_username;
private $_password;
private $_status;
private $_email;
private $_tell;
private $_signupdate;
private $connection;
function __construct() {
$this->connection = new connection();
$this->connection->ConnectDB();
}
function __destruct() {
$this->connection->DisconnectDB();
}
public function setID($id) {
$this->_id = $id;
}
public function getID() {
return $this->_id;
}
public function setUsername($username) {
$this->_username = $username;
}
public function getUsername() {
return $this->_username;
}
public function setPassword($password) {
$this->_password = $password;
}
public function getPassword() {
return $this->_password;
}
public function setStatus($status) {
$this->_status = $status;
}
public function getStatus() {
return $this->_status;
}
public function setEmail($email) {
$this->_email = $email;
}
public function getEmail() {
return $this->_email;
}
public function setTell($tell) {
$this->_tell = $tell;
}
public function getTell() {
return $this->_tell;
}
public function setSignupdate($signupdate) {
$this->_signupdate = $signupdate;
}
public function getSignupdate() {
return $this->_signupdate;
}
public function Add($username, $password, $status, $email, $tell) {
setUsername($username);
setPassword($password);
setStatus($status);
setEmail($email);
setTell($tell);
$query = "INSERT INTO users (`username`, `password`, `status`, `email`, `tell`) VALUES ('$this->_username', '$this->_password', '$this->_status', '$this->_email', '$this->_tell')";
if (mysql_query($query)) {
return TRUE;
} else {
return FALSE;
}
}
public function Delete() {
$query = "DELETE FROM users WHERE id = '$this->_id'";
mysql_query($query);
}
public function SelectOne() {
$query = "SELECT * FROM users WHERE id = '$this->_id'";
$result = mysql_query($query);
$user = mysql_fetch_array($result);
return $user;
}
public function SelectAll() {
$query = "SELECT * FROM users";
$result = mysql_query($query);
while ($user = mysql_fetch_array($result)) {
$users[] = $user;
}
return $users;
}
public function Edit() {
$query = "UPDATE users SET username = '$this->_username', password = '$this->_password', status = '$this->_status', email = '$this->_email', tell = '$this->_tell', signupdate = '$this->_signupdate' WHERE id = '$this->_id'";
mysql_query($query);
}
public function CheckUsername() {
$query = "SELECT * FROM users WHERE username = '$this->_username'";
$result = mysql_query($query);
if (mysql_num_rows($result))
return TRUE;
else
return FALSE;
}
public function CheckPassword() {
$query = "SELECT * FROM users WHERE username = '$this->_username' AND password = '$this->_password'";
$result = mysql_query($query);
if (mysql_num_rows($result))
return TRUE;
else
return FALSE;
}
public function GetGroup() {
$query = "SELECT `group`.* FROM `group`, users WHERE `group`.code = users.status AND users.username = '$this->_username'";
$result = mysql_query($query);
return mysql_fetch_array($result);
}
public function PendingCount() {
$query = "SELECT count(*) AS count FROM users WHERE status='1'";
$result = mysql_query($query);
$count = mysql_fetch_array($result);
return $count['count'];
}
public function AllPending() {
$query = "SELECT * FROM users WHERE status = '1'";
$result = mysql_query($query);
while ($user = mysql_fetch_array($result)) {
$users[] = $user;
}
return $users;
}
}
?>
دوستان و اساتید عزیز من در زمینه شی گرایی یکم مشکل دارم. یک کلاس برای بخش کاربران نوشتم که یه سری توابع درونش هست.
سوال من اینه که واسه توابع باید از صفات کلاس استفاده کرد یا اینکه آرگومان ورودی داشته باشند؟!! مثلا واسه تابع Add کد زیر ، روش استاندارد چی هست؟!!
برای مثال من برای حذف یک کاربر ابتدا یک شی از کلاس میسازم و بعد تابع SetID رو فراخوانی میکنم و بعد تابع Delete رو فراخوانی میکنم. آیا این روش درستی هست؟!! روش استاندارد چیه؟!!
<?php
/**
* Description of users
*
* @author Saeed
*/
require_once 'connection.php';
class users {
private $_id;
private $_username;
private $_password;
private $_status;
private $_email;
private $_tell;
private $_signupdate;
private $connection;
function __construct() {
$this->connection = new connection();
$this->connection->ConnectDB();
}
function __destruct() {
$this->connection->DisconnectDB();
}
public function setID($id) {
$this->_id = $id;
}
public function getID() {
return $this->_id;
}
public function setUsername($username) {
$this->_username = $username;
}
public function getUsername() {
return $this->_username;
}
public function setPassword($password) {
$this->_password = $password;
}
public function getPassword() {
return $this->_password;
}
public function setStatus($status) {
$this->_status = $status;
}
public function getStatus() {
return $this->_status;
}
public function setEmail($email) {
$this->_email = $email;
}
public function getEmail() {
return $this->_email;
}
public function setTell($tell) {
$this->_tell = $tell;
}
public function getTell() {
return $this->_tell;
}
public function setSignupdate($signupdate) {
$this->_signupdate = $signupdate;
}
public function getSignupdate() {
return $this->_signupdate;
}
public function Add($username, $password, $status, $email, $tell) {
setUsername($username);
setPassword($password);
setStatus($status);
setEmail($email);
setTell($tell);
$query = "INSERT INTO users (`username`, `password`, `status`, `email`, `tell`) VALUES ('$this->_username', '$this->_password', '$this->_status', '$this->_email', '$this->_tell')";
if (mysql_query($query)) {
return TRUE;
} else {
return FALSE;
}
}
public function Delete() {
$query = "DELETE FROM users WHERE id = '$this->_id'";
mysql_query($query);
}
public function SelectOne() {
$query = "SELECT * FROM users WHERE id = '$this->_id'";
$result = mysql_query($query);
$user = mysql_fetch_array($result);
return $user;
}
public function SelectAll() {
$query = "SELECT * FROM users";
$result = mysql_query($query);
while ($user = mysql_fetch_array($result)) {
$users[] = $user;
}
return $users;
}
public function Edit() {
$query = "UPDATE users SET username = '$this->_username', password = '$this->_password', status = '$this->_status', email = '$this->_email', tell = '$this->_tell', signupdate = '$this->_signupdate' WHERE id = '$this->_id'";
mysql_query($query);
}
public function CheckUsername() {
$query = "SELECT * FROM users WHERE username = '$this->_username'";
$result = mysql_query($query);
if (mysql_num_rows($result))
return TRUE;
else
return FALSE;
}
public function CheckPassword() {
$query = "SELECT * FROM users WHERE username = '$this->_username' AND password = '$this->_password'";
$result = mysql_query($query);
if (mysql_num_rows($result))
return TRUE;
else
return FALSE;
}
public function GetGroup() {
$query = "SELECT `group`.* FROM `group`, users WHERE `group`.code = users.status AND users.username = '$this->_username'";
$result = mysql_query($query);
return mysql_fetch_array($result);
}
public function PendingCount() {
$query = "SELECT count(*) AS count FROM users WHERE status='1'";
$result = mysql_query($query);
$count = mysql_fetch_array($result);
return $count['count'];
}
public function AllPending() {
$query = "SELECT * FROM users WHERE status = '1'";
$result = mysql_query($query);
while ($user = mysql_fetch_array($result)) {
$users[] = $user;
}
return $users;
}
}
?>