【发布时间】:2011-12-29 14:16:44
【问题描述】:
我目前正在用 PHP5 为我的小型网站创建一个简单的 CMS。这是我在 PHP 中的第一个“更大”项目。首先,我正在创建所需的类,这些类可以稍微简化我的工作,但我被困住了。我需要您对我的UserInfo 类中的以下函数的意见:
public function setUser($id) {
if(!isset($id)) {
return false;
}
session_start();
$conn = new mysql($_SESSION['DBCONNINFO']);
$sql = "SELECT
usr.ID,
usr.USERNAME as TUSERNAME,
usr.FIRST_NAME,
usr.LAST_NAME,
usr.PHONE,
usr.MOBILE,
usr.EMAIL,
usr.ADDITIONAL_INFO,
usr.LAST_LOGIN_DATE,
usr.USER_GROUP_ID
FROM cms_users usr
WHERE usr.id = " . $id;
$result = $conn->query_cust($sql);
$conn=null;
foreach ($result as $row) {
$this->id = $row['usr']['ID'];
$this->username = $row['usr']['TUSERNAME'];
$this->firstname = $row['usr']['FIRST_NAME'];
$this->lastname = $row['usr']['LAST_NAME'];
$this->phone = $row['usr']['PHONE'];
$this->mobile = $row['usr']['MOBILE'];
$this->email = $row['usr']['EMAIL'];
$this->additional_info = $row['usr']['ADDITIONAL_INFO'];
$this->last_login_date = $row['usr']['LAST_LOGIN_DATE'];
$this->user_group = $row['usr']['USER_GROUP_ID'];
}
return true;
}
我这样做是否正确,我不是在谈论语法,现在我专注于类结构、设计和最佳实践 - 任何意见都将不胜感激。
我可以在类构造函数中调用session_start(),并使用其中的变量,而不是每次都在函数中调用它!?
我应该通过close() 函数关闭数据库连接还是$conn=null 可以接受!?
将数据库信息存储在会话类中是一种不好的做法吗!?如果是,将其作为“全局”变量存储在哪里 - $_GLOBAL !?
如果有 'PHP bes practice class structure in 5 minutes for dummy',请通知我 :)
提前致谢。
【问题讨论】:
-
@igorw 哇,那篇文章很有趣。我已经做了很长时间的依赖注入,但不知道它是这样调用的。使用这条路线对我来说是有意义的,我建议 AlenBer 遵循这条路线,即使它在架构层面上非常技术性但在编码层面上很简单