Skip to content
Сокращённые пути до файлов установленных расширений в vendor/ и т.п.
PHP
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.infra.json
README.md
Search.php
composer.json
tester.php

README.md

#Короткие адреса Короткие адреса до папок расширений поддерживающих конфигурационные файлы .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
	}
}
You can’t perform that action at this time.