データベースへの接続とさまざまな構成変数の設定に多くの作業を行う、かなり一般的なコードを実行する関数があります。私が実行したこの最上位関数コードの 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);
}
私は、より優れた、より乾燥した、より保守しやすいコードを探しています。