Php (为了扩展示例,我们添加了其中一些方法)。GetUsers方法位于存储库或DAO上。该方法只返回您想要返回的内容。如果您想要返回的不仅仅是id和name,那么可以使用另一个方法来返回它。用户的意思取决于上下文。并不是只有一个用户类。每个上下文都有自己的用户
Php (为了扩展示例,我们添加了其中一些方法)。GetUsers方法位于存储库或DAO上。该方法只返回您想要返回的内容。如果您想要返回的不仅仅是id和name,那么可以使用另一个方法来返回它。用户的意思取决于上下文。并不是只有一个用户类。每个上下文都有自己的用户,php,class,object,orm,Php,Class,Object,Orm,(为了扩展示例,我们添加了其中一些方法)。GetUsers方法位于存储库或DAO上。该方法只返回您想要返回的内容。如果您想要返回的不仅仅是id和name,那么可以使用另一个方法来返回它。用户的意思取决于上下文。并不是只有一个用户类。每个上下文都有自己的用户概念。在这里,用户只是(Id,名称)Ok,所以只是总结一下。。。数据访问应该通过一个数据库接口完成,可能是一个对象,正如许多框架(例如Cake PHP)在MVC风格中所做的那样(我并不喜欢Cake PHP中的模型实现,但这是另一天的事情)。。。
(为了扩展示例,我们添加了其中一些方法)。GetUsers方法位于存储库或DAO上。该方法只返回您想要返回的内容。如果您想要返回的不仅仅是id和name,那么可以使用另一个方法来返回它。用户的意思取决于上下文。并不是只有一个用户类。每个上下文都有自己的用户概念。在这里,用户只是(Id,名称)Ok,所以只是总结一下。。。数据访问应该通过一个数据库接口完成,可能是一个对象,正如许多框架(例如Cake PHP)在MVC风格中所做的那样(我并不喜欢Cake PHP中的模型实现,但这是另一天的事情)。。。通常情况下,您不会有一个对象来表示数据库中的记录(例如,用户记录的用户对象),因为这是一种抽象形式,而不是正确的抽象形式(我当然同意这一点,因为上面示例中的db查询数量是荒谬的)。该接口旨在满足应用程序的需要。如果您需要一些用户信息(Id、名称),则方法会返回该信息。如果您需要一个完整的用户,另一个方法会返回该用户。返回的对象不会镜像数据库结构,您可以随意存储该用户。这就是为什么要使用抽象:让数据库中的东西为查询而优化,而应用程序只获取它需要的东西。持久性层实现与业务层实现分离,它们仅通过定义的接口进行通信。
$sql = 'SELECT
u.id,
u.name
FROM
users AS u
WHERE
u.deleted = "0000-00-00 00:00:00"';
echo '<ul>';
foreach ($db->fetch_all($sql) as $row) {
$url = './edit/?id=' . urlencode($row['id']);
echo '
<li><a href="' . html($url) . '">' . html($row['name']) . '</a></li>';
}
echo '<ul>';
class user {
private $id;
public function __construct($id) {
$this->id = $id;
}
public function name_get() {
return $this->value_get('name');
}
public function admin_url_get() {
return '/admin/user/edit/?id=' . urlencode($this->id);
}
public function age_get() {
// Calculate from $this->value_get('dob'), using date_diff()
}
public function address_billing_get() {
// i.e. copy returned value onto the order object during checkout
}
public function address_delivery_get() {
}
private function value_get($field) {
$db = db_get();
$sql = 'SELECT
u.' . $db->escape_field($field) . '
FROM
user AS u
WHERE
u.id = "' . $db->escape($this->id) . '" AND
u.deleted = "0000-00-00 00:00:00"';
if ($row = $db->fetch($sql)) {
return $row[$field];
} else {
exit_with_error('Cannot return "' . $field . '" for user id "' . $this->id . '"');
}
}
}
class user_factory {
static function get_all() {
$users = array();
$db = db_get();
$sql = 'SELECT
u.id
FROM
user AS u
WHERE
u.deleted = "0000-00-00 00:00:00"';
foreach ($db->fetch_all($sql) as $row) {
$users[] = new user($row['id']);
}
return $users;
}
}
echo '<ul>';
foreach (user_factory::get_all() as $user) {
echo '
<li><a href="' . html($user->admin_url_get()) . '">' . html($user->name_get()) . '</a></li>';
}
echo '</ul>';