Download the PHP package doctordanila/scancore without Composer

On this page you can find all versions of the php package doctordanila/scancore. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package scancore

Scancore

Консольный инструмент для сканирования файловой структуры PHP-проекта и генерации дампа содержимого файлов с учётом правил игнорирования (.scancoreignore). Полезен для передачи контекста проекта в LLM, анализа кода, ревью или документирования.

Возможности

Требования

Установка

Установите пакет через Composer (рекомендуется в require-dev):

После установки исполняемый файл будет доступен как vendor/bin/scancore (в Windows - vendor\bin\scancore).

Настройка игнорирования

В корне проекта создайте файл .scancoreignore и перечислите пути/шаблоны, которые нужно исключить. Правила обрабатываются аналогично .gitignore.

Не волнуйтесь если не знаете, что добавлять в файл игнорирования. При первом запуске любой команды (tree, dump, stats) файл .scancoreignore создаётся автоматически, если его нет. Сначала предпринимается попытка скопировать содержимое .gitignore из корня проекта. Если .gitignore отсутствует, генерируется базовый шаблон со стандартными исключениями (системные папки, зависимости, логи, конфигурации, git). Для явного создания или принудительной перезаписи используйте команду init (см. ниже).

Пример:

Пояснения:

/vendor - игнорируется только папка vendor в корне.

.idea - игнорируется на любом уровне.

tests/_output/* - игнорируются файлы внутри tests/_output/ (но только в корне).

**/tests/_output/ - папка _output на любом уровне (слеш в конце означает "только директория").

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

Команда tree

Вывод полной структуры проекта:

Вывод структуры только указанной подпапки (например, modules):

Пример вывода:

Команда dump

Создание файла scancore_output.txt со всеми неигнорируемыми файлами и их содержимым:

Указать имя выходного файла:

Ограничить дамп только файлами из определённой подпапки (например, modules/tasks):

Пояснения:

Команда нужна для того, чтобы вывести в единый файл всё содержимое файлов вашего проекта или отдельной его папки.

. во втором аргументе использует вывод в файл по умолчанию, используется, для того, чтобы не менять файл вывода, но указать определённую директорию сканирования

Содержимое результирующего файла:

Команда stats

Сбор статистики проекта и генерация двух отчётов: HTML (с графами и таблицами) и JSON (для LLM).

Базовый запуск (в текущей папке):

Будут созданы файлы stats.html и stats_llm.txt.

Указать базовое имя файлов (например, myproject):

Создадутся myproject.html и myproject_llm.txt.

Ограничить анализ только подпапкой (например, src/):

Здесь . означает использовать имя по умолчанию (stats), а src - подпапка для сканирования.

Что содержится в HTML-отчёте?

*Что содержится в JSON-файле (`_llm.txt`)?**

Все данные в машиночитаемом формате, включая полный граф зависимостей, списки файлов с зависимостями и метрики. Удобно для передачи в LLM для дальнейшего анализа.

Интеллектуальная фильтрация (dump и stats)

Для команд dump и stats доступны следующие фильтры, позволяющие оставить только те файлы, которые удовлетворяют заданным критериям. Фильтры комбинируются по логическому И (файл должен удовлетворять всем указанным фильтрам). Внутри одного фильтра значения объединяются по ИЛИ (если передано несколько значений, достаточно совпадения с любым).

Доступные фильтры

Опция Описание Пример значения Поддержка в dump Поддержка в stats
--class Имена классов (полностью квалифицированные). Включает файлы, в которых встречается указанный класс. App\Controller\UserController
--pattern Регулярное выражение для поиска в содержимом файла. "/function (calculate\|compute)/i"
--type Подстрока в имени файла (например, Controller, Model, Service). Controller
--impl Имя интерфейса. Включает файлы, реализующие данный интерфейс. Psr\Log\LoggerInterface ❌ (игнорируется)
--ext Имя родительского класса. Включает файлы, наследующие указанный класс. Illuminate\Database\Eloquent\Model ❌ (игнорируется)
--use Имя трейта или класса. Включает файлы, использующие его через use (для трейтов) или импортирующие. Scancore\Filter\FilterInterface ❌ (игнорируется)

Примечание: Фильтры --impl, --ext, --use работают только в команде stats, так как требуют предварительного анализа зависимостей (карты классов). В команде dump они игнорируются с предупреждением.

Передача нескольких значений

Значения можно указывать через запятую:

Или повторять опцию несколько раз:

Оба способа эквивалентны.

Примеры: Только файлы, содержащие класс FilterManager:

Файлы, в имени которых есть "Command" (например, все классы команд):

Файлы, реализующие интерфейс FilterInterface:

Комбинация: файлы, содержащие слово "collect" (регистронезависимо) и являющиеся PHP-файлами (type=php):

Несколько классов через запятую:

Все фильтры вместе (stats):

Команда init

Явное создание файла .scancoreignore в корне проекта.

Если файл уже существует, команда сообщит об этом и ничего не изменит. Для принудительной перезаписи используйте флаг --force (сокращённо -f):

При создании файла используется тот же алгоритм, что и при автоматической генерации:

Временные исключения из командной строки (--ignore)

Для всех команд (tree, dump, stats) можно добавить временные правила игнорирования прямо в команде, используя флаг --ignore=шаблон. Флаг можно повторять несколько раз.

Пример:

Важно: временные правила применяются только при наличии файла .env в корне проекта. Если файл отсутствует, будет выведено предупреждение, и флаги --ignore будут проигнорированы (в таком случае сканирование выполнится только по правилам из .scancoreignore).

Настройка исключений для команд

По умолчанию команда init исключена из обработки --ignore. Вы можете изменить это, создав файл .env (на основе .env.example) и указав список команд, для которых временные игноры не должны применяться:

Если вы хотите, чтобы --ignore работал для всех команд, просто оставьте переменную пустой или удалите её(создав файл .env из .env.example).

Обновление включает:

Новые возможности интеллектуальной фильтрации:


All versions of scancore with dependencies

PHP Build Version
Package Version
Requires php Version >=7.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package doctordanila/scancore contains the following files

Loading the files please wait ...