LanKing
Guest
Организация репозитории ф-ций проекта
Приветствую, многоуважаемый all.
Требуется помощь в следующем вопросе.
На настоящий момент в нашей библиотеке custom functions насчитывается более 1000 ф-ций, сортированных по пакетам. К примеру - пакеты - syntaxvalidate, arrays, strings и т.п.
Хотелось бы:
1. Организовать удобный репозиторий, чтобы в процессе разработки наши программисты могли использовать любые ф-ции из репозитория.
2. При финальной прогонке проекта перед сдачей в директорию репозитория сдаваемого проекта копировались бы только те ф-ции, которые задействованы в проекте.
3. Чтобы для реализации первых двух пунктов применялось бы минимум телодвижений.
Был предложен следующий метод (по аналогии с smarty functions)
Организация репозитория вида
/repository/$package/function.$name.inc
/repository/$package/class.$name.inc
Организация вызова ф-ции через:
Function TakeFunc ($package, $name) {
if (!isset ($package)) { echo 'Function package parameter is not defined'; return; }
if (!isset ($name)) { echo 'Function name parameter is not defined'; return; }
$funcname='function_'.$package.'_'.$name;
require_once ('/repository/'.$package.'/function.'.$name.'.lib');
$args_list=func_get_args(); unset ($args_list[0]); unset ($args_list[1]);
$args=''; $separator=''; foreach ($args_list as $param) { $args.="$separator'$param'"; $separator=', '; }
$funcreturn=call_user_func ($funcname, $args);
return $funcreturn;
}
И при финальной прогонке проекта перед сдачей какимм-то отдельным парсером вылавливать TakeFunc в файлах кода.
Решение мне не очень нравится, кто-нибудь предложит что-то более удобное ? Напомниаю, основа - макс. автоматизированность. Человеческий фактор не идеален.
Приветствую, многоуважаемый all.
Требуется помощь в следующем вопросе.
На настоящий момент в нашей библиотеке custom functions насчитывается более 1000 ф-ций, сортированных по пакетам. К примеру - пакеты - syntaxvalidate, arrays, strings и т.п.
Хотелось бы:
1. Организовать удобный репозиторий, чтобы в процессе разработки наши программисты могли использовать любые ф-ции из репозитория.
2. При финальной прогонке проекта перед сдачей в директорию репозитория сдаваемого проекта копировались бы только те ф-ции, которые задействованы в проекте.
3. Чтобы для реализации первых двух пунктов применялось бы минимум телодвижений.
Был предложен следующий метод (по аналогии с smarty functions)
Организация репозитория вида
/repository/$package/function.$name.inc
/repository/$package/class.$name.inc
Организация вызова ф-ции через:
Function TakeFunc ($package, $name) {
if (!isset ($package)) { echo 'Function package parameter is not defined'; return; }
if (!isset ($name)) { echo 'Function name parameter is not defined'; return; }
$funcname='function_'.$package.'_'.$name;
require_once ('/repository/'.$package.'/function.'.$name.'.lib');
$args_list=func_get_args(); unset ($args_list[0]); unset ($args_list[1]);
$args=''; $separator=''; foreach ($args_list as $param) { $args.="$separator'$param'"; $separator=', '; }
$funcreturn=call_user_func ($funcname, $args);
return $funcreturn;
}
И при финальной прогонке проекта перед сдачей какимм-то отдельным парсером вылавливать TakeFunc в файлах кода.
Решение мне не очень нравится, кто-нибудь предложит что-то более удобное ? Напомниаю, основа - макс. автоматизированность. Человеческий фактор не идеален.