php在mvc中怎么建模型,如何在MVC中构建模型?

作为业务逻辑的一切都属于模型,无论是数据库查询,计算,REST调用等。

您可以在模型本身中访问数据,MVC模式不会限制您这样做。您可以使用服务,映射器和其他方法对其进行糖涂层,但模型的实际定义是处理业务逻辑的层,仅此而已。它可以是一个类,一个函数,或一个包含大量对象的完整模块,如果这是你想要的。

拥有一个实际执行数据库查询的单独对象总是更容易,而不是直接在模型中执行它们:这在单元测试时会特别有用(因为在模型中注入模拟数据库依赖项很容易):class Database {

protected $_conn;

public function __construct($connection) {

$this->_conn = $connection;

}

public function ExecuteObject($sql, $data) {

// stuff

}}abstract class Model {

protected $_db;

public function __construct(Database $db) {

$this->_db = $db;

}}class User extends Model {

public function CheckUsername($username) {

// ...

$sql = "SELECT Username FROM" . $this->usersTableName . " WHERE ...";

return $this->_db->ExecuteObject($sql, $data);

}}$db = new Database($conn);$model = new User($db);$model->CheckUsername('foo');

此外,在PHP中,您很少需要捕获/重新抛出异常,因为保留了回溯,特别是在您的示例中。只是抛出异常并在控制器中捕获它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值