infrajs/config-search

This package is abandoned and no longer maintained. The author suggests using the infrajs/config package instead.

1.1.7 2017-02-21 20:41 UTC

README

#Короткие адреса Короткие адреса до папок расширений поддерживающих конфигурационные файлы .infra.json

Поиск файла $src = Path::theme('-plugin/test.js') с коротким адресом "-" будет осуществляться в папках с .infra.json.

Например, если в папке vendor/name/plugin/ есть .infra.json и test.js, то путь -plugin/test.js приведён к файлу vendor/name/plugin/test.js

Также в .infra.json в корне проекта можно использовать короткое имя расширения, без указания полного адреса vendor/name/plugin.

{
	"plugin":{
		"js":"test.js"		
	}
}

Файлы и папки всех установленных расширений с конфигурационным файлом .infra.json будут доступны по короткому адресу -plugin/folders/file.ext, где "-" скрывает часть адреса, варианты которого и подготавливает данное расширение.

Расширение расширяет функциональность infrajs/path. В массив Path::$conf['search'] добавляются адреса производителей поддерживающих конфигурацию через файлы .infra.json.

Использование

Расширение устанавливается автоматически как зависимость infrajs/router настроек не требуется.

При самостоятельном использовании

Для тех кто знает что делает...

\infrajs\config\Search::init(); //Наполнит Path::$conf['search'] новыми путями

Описание

Путь для поиска файлов c - по умолчанию указан только один vendor/infrajs/ и его достаточно, чтобы собрать все нужные зависимости.

Определённые пути кэшируются, кэш привязан к дате изменения файла composer.lock

Принцип работы - пробежаться по всем папкам проекта и все папки папок с файлами .infra.json добавить в config.path.search.

  • .infra.json - корень, уже итак обработан, игнорируется
  • dir/.infra.json - нет явного производителя, игнорируется, путь итак сработает -dir/file.ext
  • dir1/dir2/.infra.json - в search будет добавлен путь dir1/ и будет работать путь "-dir2/file.ext"
  • dir1/dir2/dir3/.infra.json - в search будет добавлен путь dir1/dir2/ и будет работать путь "-dir3/file.ext"

Найденные пути добавляются в конец config.path.search.

Есть папки которые содержат часто-подключаемые файлы, но не содержащие .infra.json

  • vendor/components/,
  • vendor/twbs/,
  • bower_components/ Можно указывать вручную в корне проекта .infra.json
{
	"path":{
		"search":[
			"vendor/components/",
			"vendor/twbs/",
			"bower_components/"
		]
	}
}

Отключить расширение

Без расширения config-search все пути нужно буедет перечислить вручную в корневом .infra.json. Отключить использование этого расширения если оно установлено можно параметром off в корневом .infra.json

{
	"config-search":{
		"off":true
	}
}