Очень устал от пойска ошибок из-за дублирующихся или нехватающих библиотек при подключении javascript библиотек.. хочется упростить себе работу создав дерево зависимостей..
проблема
во время написания view скрипта в какой-то момент мы понимаем что нужен к примеру Autocomplete
чтоб правильно подключить Autocomplete необходимы UI библиотеки position, widget и core которые в свое время зависят от самого jquery..
простое решение
по простому можно сложить весь UI в один пакет и подключать его на всех страничках, но используется не только эти библиотеки, но и множество других, это и WYSIWYG редакторы, и colorpicker и webcam и и и...
помимо этого у большинства view есть свой скриптик, а также может быть некоторая библиотека из множества файлов из которой нужен для данного view только один...
сложное решение
есть helper которому можно сказать, какая библиотека необходима, в процессе выполнения скрипта,
таким образом собирается набор необходимых библиотек, и во время рэндинга создается ссылка на некий пхпфайл
к примеру так.
js.php читает конфигурацию (тут как раз хочется зависимости добавить), и понимает какой набор файлов необходим
весь список передается дальше на minify который генерит сжатый файл, кэширует его и отдает клиенту (кстати решаются проблемы дубликатов)...
теперь о проблемах данного подхода.. для того чтобы все коректно работало необходимо чтоб все библиотеки подключались в определенной последовательности. в случае если зависимая библиотека подключена после скрипта котоый ее использует, может возникнуть ошибка.
прежде чем изобретать велосипед, с зависимостями, хотел спросить вашего совета, существуют ли готовые реализации, или возможно закручиваю я слишком сильно, и правильный путь тот что назван простым?
проблема
во время написания view скрипта в какой-то момент мы понимаем что нужен к примеру Autocomplete
чтоб правильно подключить Autocomplete необходимы UI библиотеки position, widget и core которые в свое время зависят от самого jquery..
простое решение
по простому можно сложить весь UI в один пакет и подключать его на всех страничках, но используется не только эти библиотеки, но и множество других, это и WYSIWYG редакторы, и colorpicker и webcam и и и...
помимо этого у большинства view есть свой скриптик, а также может быть некоторая библиотека из множества файлов из которой нужен для данного view только один...
сложное решение
есть helper которому можно сказать, какая библиотека необходима, в процессе выполнения скрипта,
PHP:
$this->headRessouce()->add( 'autocomplete', 'js' );
к примеру так.
PHP:
<script type="text/javascript" src="js.php?g=autocomplete,webcam"></script>
PHP:
autocomplete.0 = "js/jQuery/jquery-1.5.2.js"
autocomplete.1 = "js/jQuery/ui/jquery.ui.core.js"
autocomplete.2 = "js/jQuery/ui/jquery.ui.widget.js"
autocomplete.3 = "js/jQuery/ui/jquery.ui.position.js"
autocomplete.4 = "js/jQuery/ui/jquery.ui.autocomplete.js"
теперь о проблемах данного подхода.. для того чтобы все коректно работало необходимо чтоб все библиотеки подключались в определенной последовательности. в случае если зависимая библиотека подключена после скрипта котоый ее использует, может возникнуть ошибка.
прежде чем изобретать велосипед, с зависимостями, хотел спросить вашего совета, существуют ли готовые реализации, или возможно закручиваю я слишком сильно, и правильный путь тот что назван простым?