PHPackages                             niva/niva - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. niva/niva

ActiveProject[CLI &amp; Console](/categories/cli)

niva/niva
=========

Niva - PHP项目打包工具

v0.9.1(11mo ago)101MITPHPPHP ^8.2.0

Since May 25Pushed 11mo agoCompare

[ Source](https://github.com/yangweijie/niva-site-packager)[ Packagist](https://packagist.org/packages/niva/niva)[ Docs](https://github.com/niva/niva)[ RSS](/packages/niva-niva/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (4)Versions (3)Used By (0)

Niva - PHP项目打包工具
================

[](#niva---php项目打包工具)

Niva 是一个基于 Laravel Zero 开发的命令行工具，用于将 PHP 项目打包为 ZIP 文件。它能够自动识别常见的 PHP 框架，智能排除不必要的文件和目录，并支持自定义配置。

功能特性
----

[](#功能特性)

- 🚀 **自动框架识别**: 支持 Laravel、Lumen、Symfony、CodeIgniter、Yii、ThinkPHP、Webman、Laminas、Slim 等主流框架
- 📁 **智能排除**: 自动排除 `.git`、`node_modules`、`vendor`、`logs` 等常见忽略目录
- ⚙️ **配置灵活**: 支持从 `.env` 文件读取自定义排除配置
- 🗜️ **压缩可控**: 支持 0-9 级压缩等级设置
- 📦 **输出自定义**: 可指定输出目录和文件名

安装
--

[](#安装)

1. 克隆项目：

```
git clone
cd niva
```

2. 安装依赖：

```
composer install
```

3. 使用可执行文件：

```
chmod +x niva
./niva --help
```

使用方法
----

[](#使用方法)

### 基本用法

[](#基本用法)

```
# 打包指定目录
./niva build /path/to/your/project

# 打包当前目录
./niva build .

# 显示帮助信息
./niva build --help
```

### 高级选项

[](#高级选项)

```
# 指定输出目录
./niva build /path/to/project --output=/path/to/output

# 设置压缩等级 (0-9, 默认为6)
./niva build /path/to/project --level=9

# 额外排除文件或目录
./niva build /path/to/project --exclude="temp,*.log,debug"
```

### .env 配置支持

[](#env-配置支持)

在项目根目录的 `.env` 文件中添加 `EXCLUDE` 配置：

```
# JSON 数组格式
EXCLUDE=["temp", "*.tmp", "debug.log", "uploads"]

# 或逗号分隔格式
EXCLUDE="temp,*.tmp,debug.log,uploads"
```

支持的框架
-----

[](#支持的框架)

Niva 能够自动识别以下 PHP 框架并应用相应的排除规则：

### Laravel

[](#laravel)

- 检测文件：`artisan` + `composer.json` (包含 laravel/framework)
- 额外排除：`storage/app/public`, `storage/debugbar`, `storage/logs`, `bootstrap/cache`, `public/storage`

### Lumen

[](#lumen)

- 检测文件：`artisan` + `composer.json` (包含 laravel/lumen-framework)
- 额外排除：`storage/logs`, `storage/framework/cache`, `storage/framework/sessions`, `storage/framework/views`, `bootstrap/cache`

### Symfony

[](#symfony)

- 检测文件：`bin/console` + `composer.json` (包含 symfony/framework-bundle 或 symfony/symfony)
- 额外排除：`var/cache`, `var/log`, `var/sessions`

### Webman

[](#webman)

- 检测文件：`start.php` + `composer.json` (包含 workerman/webman 或 workerman/webman-framework)
- 额外排除：`runtime`, `storage/logs`

### Laminas (Zend Framework)

[](#laminas-zend-framework)

- 检测文件：`composer.json` (包含 laminas/laminas-mvc 或 zendframework/zend-mvc)
- 额外排除：`data/cache`, `data/logs`, `data/sessions`

### Slim Framework

[](#slim-framework)

- 检测文件：`composer.json` (包含 slim/slim)
- 额外排除：`logs`, `cache`

### CodeIgniter

[](#codeigniter)

- 检测文件：`index.php` + `application/config/config.php`
- 额外排除：`application/cache`, `application/logs`

### Yii

[](#yii)

- 检测文件：`yii` 或 `protected/yiic.php`
- 额外排除：`runtime`, `assets`

### ThinkPHP

[](#thinkphp)

- 检测文件：`think` 或 `ThinkPHP` 目录
- 额外排除：`runtime`, `data`

默认排除列表
------

[](#默认排除列表)

Niva 默认会排除以下文件和目录：

```
.git, .svn, .hg
node_modules, vendor
.idea, .vscode
.DS_Store, Thumbs.db
*.log, logs, cache
.env, .env.local, .env.*.local
composer.lock, package-lock.json, yarn.lock
tests, phpunit.xml, phpunit.xml.dist
.phpunit.result.cache, coverage, .nyc_output
build, dist, tmp, temp
storage/logs, storage/framework/cache
storage/framework/sessions, storage/framework/views
bootstrap/cache

```

示例
--

[](#示例)

### 打包 Laravel 项目

[](#打包-laravel-项目)

```
./niva build /path/to/laravel-project --output=/home/user/releases --level=9
```

输出：

```
开始打包项目...
源目录: /path/to/laravel-project
输出目录: /home/user/releases
检测到框架: laravel
已添加 156 个文件到压缩包
打包完成: /home/user/releases/www.zip
文件大小: 2.34 MB

```

### 使用自定义排除

[](#使用自定义排除)

```
./niva build /path/to/project --exclude="uploads,temp,*.cache"
```

### 从 .env 读取配置

[](#从-env-读取配置)

在项目的 `.env` 文件中：

```
EXCLUDE=["node_modules", "*.log", "temp", "uploads"]
```

然后运行：

```
./niva build /path/to/project
```

开发
--

[](#开发)

### 运行测试

[](#运行测试)

```
./vendor/bin/pest
```

### 代码格式化

[](#代码格式化)

```
./vendor/bin/pint
```

许可证
---

[](#许可证)

MIT License

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance50

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

358d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c0b5f090a9bb92727e9c2e8281d05c2da5f2f9bf66cf1811714a9ffc0e383325?d=identicon)[yangweijie](/maintainers/yangweijie)

---

Top Contributors

[![yangweijie](https://avatars.githubusercontent.com/u/1614114?v=4)](https://github.com/yangweijie "yangweijie (3 commits)")

---

Tags

phpclizipbuildpackaging

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/niva-niva/health.svg)

```
[![Health](https://phpackages.com/badges/niva-niva/health.svg)](https://phpackages.com/packages/niva-niva)
```

###  Alternatives

[nunomaduro/termwind

It's like Tailwind CSS, but for the console.

2.5k239.8M286](/packages/nunomaduro-termwind)[nunomaduro/laravel-console-task

Laravel Console Task is a output method for your Laravel/Laravel Zero commands.

2582.1M11](/packages/nunomaduro-laravel-console-task)[mehrancodes/laravel-harbor

A CLI tool to Quickly create On-Demand preview environment for your apps.

9989.0k](/packages/mehrancodes-laravel-harbor)[php-school/learn-you-php

An introduction to PHP's core features: i/o, http, arrays, exceptions and so on.

3192.0k](/packages/php-school-learn-you-php)[alecrabbit/php-cli-snake

Lightweight cli spinner with zero dependencies

29211.3k5](/packages/alecrabbit-php-cli-snake)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
