承接 xul/laravel-project-map 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xul/laravel-project-map

最新稳定版本:v1.0.0

Composer 安装命令:

composer require xul/laravel-project-map

包简介

Laravel package for generating project structure maps

README 文档

README

Generate clean, configurable maps of your Laravel project structure.

Tests Latest Version PHP Version Laravel Versions License

📌 Overview

Laravel Project Map is a developer-focused tool for generating a structured view of your application's filesystem.

It helps you:

  • visualize your project structure
  • audit large codebases
  • inspect architecture quickly
  • generate shareable project maps (text or JSON)

⚡ Features

  • Artisan command: project:map
  • Recursive directory mapping
  • Configurable depth
  • Include/exclude files
  • Hidden file support
  • Vendor & node_modules toggles
  • JSON and text output formats
  • Save output to file
  • Fully tested (Pest)

📦 Installation

composer require xul/laravel-project-map

⚙️ Publish Configuration (Optional)

php artisan vendor:publish --tag=project-map-config

🚀 Usage

Basic

php artisan project:map

Include files

php artisan project:map --files

Limit depth

php artisan project:map --depth=2

Include vendor and node_modules

php artisan project:map --vendor --node-modules

Include hidden files

php artisan project:map --hidden

Output as JSON

php artisan project:map --format=json

Save output to file

php artisan project:map --save=project-map.txt

Combine options

php artisan project:map --files --depth=3 --vendor --format=json --save=map.json

🧾 Example Output

Text Output

project-root/
├── app/
│   ├── Http/
│   └── Models/
├── routes/
│   └── web.php
└── config/

JSON Output

[
    {
        "name": "app",
        "type": "directory",
        "path": "/project/app",
        "children": [...]
    }
]

⚙️ Configuration

<?php

declare(strict_types=1);

return [

    /*
    |--------------------------------------------------------------------------
    | Default Scan Path
    |--------------------------------------------------------------------------
    |
    | This is the default base path that will be scanned when no explicit
    | path is provided to the Artisan command.
    |
    | In most Laravel projects, this should remain as base_path().
    |
    */

    'default_path' => base_path(),

    /*
    |--------------------------------------------------------------------------
    | Default Maximum Depth
    |--------------------------------------------------------------------------
    |
    | This value determines how many directory levels should be traversed
    | when generating the project map.
    |
    | Example:
    | - 1 = root level only
    | - 2 = root + one nested level
    | - 5 = deeper project inspection
    |
    */

    'default_depth' => 5,

    /*
    |--------------------------------------------------------------------------
    | Include Files
    |--------------------------------------------------------------------------
    |
    | Determines whether files should be included in the generated output.
    |
    | When set to false, only directories will be listed.
    | When set to true, both directories and files will be included.
    |
    */

    'include_files' => false,

    /*
    |--------------------------------------------------------------------------
    | Hidden Files and Directories
    |--------------------------------------------------------------------------
    |
    | Determines whether hidden files and directories should be included
    | in the generated output.
    |
    | This affects dot-prefixed paths such as:
    | - .git
    | - .idea
    | - .vscode
    | - .env.example
    |
    */

    'include_hidden' => false,

    /*
    |--------------------------------------------------------------------------
    | Excluded Paths
    |--------------------------------------------------------------------------
    |
    | These paths will be excluded from the generated project map by default.
    |
    | The values may be relative to the project base path. Common heavy or
    | generated directories are excluded to keep the output clean and fast.
    |
    */

    'exclude' => [
        'vendor',
        'node_modules',
        '.git',
        'storage/logs',
        'bootstrap/cache',
    ],

    /*
    |--------------------------------------------------------------------------
    | Optional Directory Toggles
    |--------------------------------------------------------------------------
    |
    | These toggles provide a more expressive way for users to control whether
    | commonly excluded heavy directories should be scanned.
    |
    | If enabled, the related path may be removed from exclusion internally
    | before the scan begins.
    |
    */

    'include_vendor' => false,

    'include_node_modules' => false,

    /*
    |--------------------------------------------------------------------------
    | Exclude By Name
    |--------------------------------------------------------------------------
    |
    | These directory or file names will be excluded anywhere they appear
    | in the scanned structure.
    |
    | This is useful for filtering common generated artifacts globally
    | without specifying full paths.
    |
    */

    'exclude_names' => [
        '.DS_Store',
        'Thumbs.db',
    ],

    /*
    |--------------------------------------------------------------------------
    | Sort Directories First
    |--------------------------------------------------------------------------
    |
    | When enabled, directories will be listed before files.
    | This usually makes the generated structure easier to read.
    |
    */

    'sort_directories_first' => true,

    /*
    |--------------------------------------------------------------------------
    | Case Sensitive Sorting
    |--------------------------------------------------------------------------
    |
    | Determines whether names should be sorted with case sensitivity.
    | In most cases, false produces more user-friendly output.
    |
    */

    'case_sensitive_sort' => false,

    /*
    |--------------------------------------------------------------------------
    | Follow Symbolic Links
    |--------------------------------------------------------------------------
    |
    | Determines whether symbolic links should be followed during traversal.
    |
    | This is disabled by default to avoid unexpected recursion or scanning
    | outside the intended project boundary.
    |
    */

    'follow_symlinks' => false,

    /*
    |--------------------------------------------------------------------------
    | Output Format
    |--------------------------------------------------------------------------
    |
    | Defines the default output format when no format option is supplied.
    |
    | Supported values:
    | - text
    | - json
    |
    */

    'output' => [
        'default_format' => 'text',

        /*
        |--------------------------------------------------------------------------
        | Save Path
        |--------------------------------------------------------------------------
        |
        | Optional default save location for generated project maps.
        | Leave as null to print only to the console unless --save is used.
        |
        */

        'default_save_path' => null,
    ],
];

🧪 Testing

vendor/bin/pest

🤝 Contributing

Please review CONTRIBUTING.md before submitting changes.

🔒 Security

If you discover any security issues, please review SECURITY.md.

🔄 Upgrade Guide

See UPGRADE.md for upgrade instructions.

📜 License

The MIT License (MIT). See LICENSE.md for details.

👤 Author

Michael Erastus
GitHub: https://github.com/michaelerastus

⭐ Support

If you find this package useful, consider giving it a star on GitHub.

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-24

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固