1.我定义了一个AR基类,里面代码如下:
AR kelas abstrak melanjutkan \PDO {
fungsi awam abstrak daripada($tableName = '');
fungsi awam abstrak where($condition = []);
fungsi awam abstrak addWhere($condition = []);
fungsi awam abstrak orderBy($orderBy = []);
fungsi awam abstrak groupBy($groupBy = []);
fungsi awam abstrak yang mempunyai($condition = []);
}
2.又写了一个子类DB,集成AR。
kelas db memanjangkan AR {
fungsi awam pilih($field = [])
{
// TODO: Laksanakan kaedah pilih().
pulangkan $ini;
}
fungsi awam daripada($tableName = '')
{
// TODO: Laksanakan kaedah from().
pulangkan $ini;
}
fungsi awam di mana($condition = [])
{
// TODO: Laksanakan kaedah where().
pulangkan $ini;
}
fungsi awam addWhere($condition = [])
{
// TODO: Laksanakan kaedah andWhere().
pulangkan $ini;
}
fungsi awam groupBy($groupBy = [])
{
// TODO: Laksanakan kaedah groupBy().
pulangkan $ini;
}
fungsi awam orderBy($orderBy = [])
{
// TODO: Laksanakan kaedah orderBy().
pulangkan $ini;
}
fungsi awam mempunyai($condition = [])
{
// TODO: Laksanakan kaedah having().
pulangkan $ini;
}
}
抽象方法的具体实现里,都返回了本身。
3.现在我在控制器文件里实例化db类,发现能正常调用$this->db->select()->from()->where()->queryAll();
运行不报错。queryAll
里可以进行操作。
< /p>
< /p>
phpStorm tidak dapat mengecam nilai pulangan kaedah queryAll dan tidak boleh memberikan gesaan.
Selepas menambah anotasi, phpstorm boleh mengecam secara automatik
@order_c, tiada satu pun kaedah yang anda nyatakan berkesan, saya telah mencubanya.
Tidak dapat menyiarkan gambar, saya akan menghantar gambar kepada anda di sini
Tengok~