Я использовал запросы к базе данных во вспомогательных функциях в среде CodeIgniter.
Предположим, что база данных имеет много таблиц, например, школа, ученик, … и т. д., и в приложении требуются общие задачи, такие как генерация случайных уникальных идентификаторов для каждой записи в таблице, извлечение всей строки совпавшей строки из таблицы и т. д.
Теперь мы можем написать функции для каждой задачи в соответствующих моделях базы данных, например,
В 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
Других решений пока нет …