У меня есть функция, которая запускает довольно общий код, который выполняет много рабочих соединений с базой данных и настраивает различные переменные конфигурации. Давайте не будем вникать в этику, пожалуйста, со мной. У меня есть несколько утверждений if этого кода верхнего уровня, который я запускаю, который фактически отличается от функции к функции.Создать функцию, которая принимает функцию
Вот как это выглядит сейчас.
function get_users(){
// config
// set application keys
// connect to database
// retrieve user data
// authentication to foreign api
if(something){
// some more red-tape
if(something){
//more more
if(something){
/* finally the good stuff */
// the code here varies from function to function
// eg. get users
// probably will run: inner_get_users();
}
}
}
}
function get_data(){
// config
// set application keys
// connect to database
// retrieve user data
// authentication to foreign api
if(something){
// some more red-tape
if(something){
//more more
if(something){
/* finally the good stuff */
// the code here varies from function to function
// eg. get data
// probably will run: inner_get_data();
}
}
}
}
Как я хочу работать, возможно, используя анонимные функции:
function instance($inner){
// config
// set application keys
// connect to database
// retrieve user data
// authentication to foreign api
if(something){
// some more red-tape
if(something){
//more more
if(something){
/* finally the good stuff */
Call inner
}
}
}
}
function get_data(){
instance(function(
// get the data
));
}
или, может быть,
function get_users(){
$var = function(
// get the users
);
instance($var);
}
Я ищу лучше, сушилкой и более в сопровождении кода.
вы могли бы искать обратный вызов [call_user_func] (http://php.net/manual/en/function.call-user-func.php)? –