tourze/php-packer-generator
Composer 安装命令:
composer require tourze/php-packer-generator
包简介
代码生成工具,用于PHP代码的合并、优化和格式控制
README 文档
README
The PHP-Packer-Generator is a code generation component for the PHP-Packer project, responsible for merging, optimizing, and formatting PHP code.
Features
- Code Merging: Merge multiple PHP files into a single file.
- Code Optimization: Support for code minification, comment preservation, and more.
- Output Formatting: Control the formatting and style of the generated code.
- Resource Embedding: Generate code to embed resource files.
- Highly Extensible: Support custom code optimizers and formatters.
Installation
Requirements:
- PHP >= 8.1
- Composer
Install via Composer:
composer require tourze/php-packer-generator
Quick Start
Basic usage example:
use PhpPacker\Generator\CodeGenerator; use PhpPacker\Generator\Config\GeneratorConfig; use PhpPacker\Ast\AstManager; use Psr\Log\LoggerInterface; // Create config $config = new GeneratorConfig(); $config->setPreserveComments(true); $config->setRemoveNamespace(false); // Create code generator $astManager = new AstManager($logger); // $logger must implement LoggerInterface $generator = new CodeGenerator($config, $astManager, $logger); // Generate code $code = $generator->generate($astManager, $phpFiles, $resourceFiles);
Custom Code Generation
You can extend the code generation process by implementing your own CodeOptimizer and CodeFormatter:
use PhpPacker\Generator\Optimizer\CustomOptimizer; use PhpPacker\Generator\Formatter\CustomFormatter; $optimizer = new CustomOptimizer(); $formatter = new CustomFormatter(); $generator = new CodeGenerator($config, $astManager, $logger, $optimizer, $formatter);
Configuration
The GeneratorConfig class provides options to control code generation:
setPreserveComments(bool $preserve): Whether to keep comments.setRemoveNamespace(bool $remove): Whether to remove namespaces (useful for KPHP compatibility).setOptimizeCode(bool $optimize): Enable/disable code optimization.setLineEnding(?string $ending): Set custom line ending (e.g.,"\r\n").setIndentationSize(int $size): Set indentation size.setIndentationChar(string $char): Set indentation character (e.g., space or tab).
Advanced Usage
- Resource Embedding: Use
ResourceHolderGeneratorto generate code for resource files. - Custom Visitors: Implement your own AST visitors for advanced code transformations.
Contribution Guide
- Please submit issues and pull requests via GitHub.
- Follow PSR code style guidelines.
- Ensure all tests pass (
phpunit). - Add tests for new features.
License
MIT License. See LICENSE for details.
Changelog
See Releases for version history and upgrade notes.
tourze/php-packer-generator 适用场景与选型建议
tourze/php-packer-generator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 04 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 tourze/php-packer-generator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tourze/php-packer-generator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-17