在 codeigniter 的辅助函数中使用数据库查询是一种好习惯吗?
Is it a good practice to use database queries in helper functions in codeigniter?
我在 CodeIgniter 框架的辅助函数中使用了数据库查询。
假设,一个数据库有很多table,例如school, student, ... 等应用程序中需要执行一些常见任务,例如为每个条目生成随机唯一 ID a table,从 table 中检索匹配行的整行,...等是必需的。
现在,我们可以在数据库的各个模型中为每个任务编写函数,例如
在School_model中:
class School_model extends CI_Model
{
// some code ...
function generateID()
{
// code to generate unique id by checking the database
}
// some code ...
}
并在 Student_model 中:
class Student_model extends CI_Model
{
// some code ...
function generateID()
{
// same code to generate unique id except the table name
}
// some code ...
}
或我们可以将table_name作为参数传递给辅助函数:
function generate_ID( $table_name )
{
// code to genetrate unique id by checking in $table_name
}
后者防止代码重复(DRY)。但是在模型外的函数中使用数据库查询是一个好习惯吗?
我认为,扩展 Codeigniter 核心是更好的方法。
class MY_Model extends CI_Model {
你可以写function generate_ID( $table_name ){
里面的核心模型
最终使用 MY_Model
扩展您的模型
class Student_model extends MY_Model
我在 CodeIgniter 框架的辅助函数中使用了数据库查询。
假设,一个数据库有很多table,例如school, student, ... 等应用程序中需要执行一些常见任务,例如为每个条目生成随机唯一 ID a table,从 table 中检索匹配行的整行,...等是必需的。
现在,我们可以在数据库的各个模型中为每个任务编写函数,例如
在School_model中:
class School_model extends CI_Model
{
// some code ...
function generateID()
{
// code to generate unique id by checking the database
}
// some code ...
}
并在 Student_model 中:
class Student_model extends CI_Model
{
// some code ...
function generateID()
{
// same code to generate unique id except the table name
}
// some code ...
}
或我们可以将table_name作为参数传递给辅助函数:
function generate_ID( $table_name )
{
// code to genetrate unique id by checking in $table_name
}
后者防止代码重复(DRY)。但是在模型外的函数中使用数据库查询是一个好习惯吗?
我认为,扩展 Codeigniter 核心是更好的方法。
class MY_Model extends CI_Model {
你可以写function generate_ID( $table_name ){
里面的核心模型
最终使用 MY_Model
扩展您的模型class Student_model extends MY_Model