jolicode/castor
GitHub: jolicode/castor
一个轻量级的 PHP 任务运行器,旨在以纯 PHP 代码替代 Bash 脚本和 Makefile,简化自动化任务和 DevOps 工作流的编写与管理。
Stars: 550 | Forks: 30
A lightweight and modern task runner for Automation, CI/CD & DevOps.
Automate everything. In PHP. Simply. Efficiently. Elegantly.
用 PHP 编写你的自动化脚本,并从 CLI 运行它们。不再需要 Bash、Makefiles 或 YAML。
* ✅ 100% PHP - 将任务定义为简单的 PHP 函数 * ⚡ 快速且原生 - 无需配置,没有样板代码 * 🔧 提供了一系列[实用的内置函数](https://castor.jolicode.com/docs/reference/) * 🧠 为每个任务提供[自动补全](https://castor.jolicode.com/docs/going-further/interacting-with-castor/autocomplete/)和描述 * 🧰 易于集成到你的开发工作流中 ## 简介 Castor 是一个DX导向的 任务运行器,旨在帮助你以简单高效的方式自动化你的开发任务和工作流。 它可以被看作是 Makefile、Fabric、Invoke、Shell 脚本等的替代品,但它充分利用了 PHP 的脚本能力和丰富的库生态系统。 它附带了许多让你工作更轻松的功能: * 无缝解析**参数和选项**,简化输入处理 * 支持**[自动补全](https://castor.jolicode.com/docs/going-further/interacting-with-castor/autocomplete)**,实现更快捷、无错的输入 * 内置一系列实用的函数: * [`run()`](https://castor.jolicode.com/docs/getting-started/run/#the-run-function):运行外部进程,实现与外部工具的无缝集成 * [`io()`](https://castor.jolicode.com/docs/going-further/helpers/console-and-io/#the-io-function):展示漂亮的输出并与终端进行交互 * [`watch()`](https://castor.jolicode.com/docs/going-further/helpers/watch/):监听文件,并在文件修改时自动触发操作 * [`fs()`](https://castor.jolicode.com/docs/going-further/helpers/filesystem/#the-fs-function):创建、删除和操作文件及目录 * [以及更多高级函数](https://castor.jolicode.com/docs/reference/) ## 10 秒快速上手 ``` curl "https://castor.jolicode.com/install" | bash castor ``` → Castor 还可以通过许多其他方式安装(phar、静态二进制文件、Composer、 Github Action 等),请参阅[安装文档](https://castor.jolicode.com/installation/)。 ## 基本用法 在 Castor 中,任务被定义为普通的 PHP 函数,并在 `castor.php` 文件中使用 `#[AsTask()]` 属性进行标记。 这些任务不仅可以运行任何 PHP 代码,还可以使用 Castor 自带的用于[标准操作的各种函数](https://castor.jolicode.com/docs/reference/)。 例如,以下这个 castor.php 文件: ``` use Castor\Attribute\AsTask; #[AsTask()] function hello(): void { echo 'Hello from castor'; } ``` 将会暴露出一个 `hello` 任务,你可以通过 `castor hello` 来运行它: ``` $ castor hello Hello from castor ``` 接着,你可以尽情发挥,创建更复杂的任务: ``` #[AsTask(description: 'Clean the infrastructure (remove container, volume, networks)')] function destroy(bool $force = false) { if (!$force) { io()->warning('This will permanently remove all containers, volumes, networks... created for this project.'); io()->comment('You can use the --force option to avoid this confirmation.'); if (!io()->confirm('Are you sure?', false)) { io()->comment('Aborted.'); return; } } run('docker-compose down -v --remove-orphans --volumes --rmi=local'); notify('The infrastructure has been destroyed.') } ``` → 想了解 Castor 的基本用法和主要功能吗?请阅读[入门文档](https://castor.jolicode.com/docs/getting-started/) ## 实际应用场景 * 运行数据库迁移 * 一条命令部署你的应用 * 管理资源或翻译 * 引导环境 * 自动化内部工具 → 查看[来自社区的更多示例](https://castor.jolicode.com/help/examples/#real-world-examples)。 ## 开发者怎么说 ## 为什么不用 Make / Robo / Phing / Deployer / Symfony Console? 因为: * Make 不是 PHP,在大型项目中难以维护 * 其他工具要么过于冗长、严重依赖面向对象(OOP),要么需要 YML 或 XML 配置,要么仅专注于部署。 * Symfony Console 是一个很好的基础——但 Castor 正是基于它构建的,并赋予了你超能力 → 在我们的 [FAQ](https://castor.jolicode.com/help/faq/) 中查看详细对比 ## 想了解更多? 通过阅读文档来探索更多内容: * [安装 Castor 及初始设置](https://castor.jolicode.com/installation/) * [文档](https://castor.jolicode.com/docs/) * [Castor 入门指南](https://castor.jolicode.com/docs/getting-started/) * [基本用法](https://castor.jolicode.com/docs/getting-started/basic-usage/) * [使用 `run()` 执行进程](https://castor.jolicode.com/docs/getting-started/run/) * [任务参数](https://castor.jolicode.com/docs/getting-started/arguments) * [使用 Context](https://castor.jolicode.com/docs/getting-started/context) * [远程执行](https://castor.jolicode.com/docs/getting-started/remote) * [深入探索 Castor](https://castor.jolicode.com/docs/going-further/) * [Castor 参考](https://castor.jolicode.com/docs/reference/) * [需要帮助?](https://castor.jolicode.com/help/) * [常见问题解答](https://castor.jolicode.com/help/faq/) * [示例](https://castor.jolicode.com/help/examples/) * [支持](https://castor.jolicode.com/help/support/)
标签:ffuf, OpenVAS, PHP, 任务运行器, 文档结构分析, 网络调试, 自动化
