我如何用我正在寻找的库和助手构建一个php mvc
此时,我想构建一个MVC框架。一切都很顺利,但现在控制器和模型之间出现了问题 举例说明我的问题 Model.php我如何用我正在寻找的库和助手构建一个php mvc,php,model-view-controller,frameworks,Php,Model View Controller,Frameworks,此时,我想构建一个MVC框架。一切都很顺利,但现在控制器和模型之间出现了问题 举例说明我的问题 Model.php class Model{ public function __construct(){ include('libraries/mysql.php'); new mysql(); } } 在mysql库中,我有一个自然的mysql方法,比如选择、插入。。。 现在我想在我的users\u模型中通过扩展模型来使用mysql类 我的用户模型类
class Model{
public function __construct(){
include('libraries/mysql.php');
new mysql();
}
}
在mysql库中,我有一个自然的mysql方法,比如选择、插入。。。
现在我想在我的users\u模型中通过扩展模型来使用mysql类
我的用户模型类
class user_model extends Model{
public function get_user(){
$this->mysql->select();
}
}
结果错误找不到选择方法…请尝试以下操作:
class Model{
protected $mysql;
public function __construct(){
include_once('libraries/mysql.php');
$this->mysql = new mysql();
}
}
试试这个:
class Model{
protected $mysql;
public function __construct(){
include_once('libraries/mysql.php');
$this->mysql = new mysql();
}
}
您不希望在每个实例中都包含lib。如果它真的是一个lib,那么就一次
require_once('libraries/mysql.php');
class Model{
protected $_mysql;
public function __construct(){
$this->_mysql = new mysql();
}
}
class user_model extends Model {
public function foo() {
$this->_mysql->select();
}
}
如果您想像JohnP建议的那样使用依赖注入,您将需要更多的代码。未经测试,但应概述的方式是的,我知道真正的DI工程不同
interface my_db {
public function select();
public function insert();
}
class mysql implements my_db {
public function select() {
// select code
}
public function insert() {
// insert code
}
}
class Model{
protected $_db;
public function __construct(my_db $DB){
$this->_db = $DB;
}
}
class user_Model extends Model {
public function foo(){
$this->_db->select();
}
}
$model = new Model(new mysql());
您不希望在每个实例中都包含lib。如果它真的是一个lib,那么就一次
require_once('libraries/mysql.php');
class Model{
protected $_mysql;
public function __construct(){
$this->_mysql = new mysql();
}
}
class user_model extends Model {
public function foo() {
$this->_mysql->select();
}
}
如果您想像JohnP建议的那样使用依赖注入,您将需要更多的代码。未经测试,但应概述的方式是的,我知道真正的DI工程不同
interface my_db {
public function select();
public function insert();
}
class mysql implements my_db {
public function select() {
// select code
}
public function insert() {
// insert code
}
}
class Model{
protected $_db;
public function __construct(my_db $DB){
$this->_db = $DB;
}
}
class user_Model extends Model {
public function foo(){
$this->_db->select();
}
}
$model = new Model(new mysql());
哦。。从哪里开始
让我们从模型开始。在MVC中,模型不是一个类,而是一个应用层。它应该由负责业务逻辑的域对象组成。以及负责与存储交互的对象,通常是数据映射器
接下来。。好你知道除了MySQL之外还有其他更好的数据库吗?您似乎创建了一些mysql对象包装器。重点是什么?特别是当php已经实现时
至于连接。控制器应该有权访问创建模型的工厂类。对象中已插入数据库连接。Oh。。从哪里开始
让我们从模型开始。在MVC中,模型不是一个类,而是一个应用层。它应该由负责业务逻辑的域对象组成。以及负责与存储交互的对象,通常是数据映射器
接下来。。好你知道除了MySQL之外还有其他更好的数据库吗?您似乎创建了一些mysql对象包装器。重点是什么?特别是当php已经实现时
至于连接。控制器应该有权访问创建模型的工厂类。数据库连接已经注入到对象中。不要这样实例化。查找一些称为依赖注入的内容。请花些时间阅读以提问。不要这样实例化。查找称为依赖项注入的内容。请花一些时间阅读以提问。您不想为每个已编辑的类实例包含库,只需使用include_once代替。您不想为每个已编辑的类实例包含库,只需使用include_once代替是,抽象,抽象,抽象是,抽象,抽象,摘要