Bob 项目技术文档
2024-12-25 10:20:38作者:魏侃纯Zoe
1. 安装指南
前提条件
Bob 需要至少 PHP 5.3.2 才能运行。如果你计划对 Bob 进行开发,请确保在 php.ini 中将 phar.readonly 设置为 Off。否则,你将无法创建 Bob 的 PHAR 包。
安装方式
推荐方式:使用 Composer 安装
- 在你的
composer.json文件中,将chh/bob包添加到require-dev部分:{ "require-dev": { "chh/bob": "1.0.*@dev" } } - 运行
composer install --dev安装 Bob。 - 你可以通过以下命令调用 Bob:
或者:php vendor/bin/bob./vendor/bin/bob
系统级安装(仅适用于类 Unix 系统)
- 下载 Bob 的 [Release][tags] 或通过以下命令克隆仓库:
git clone git://github.com/CHH/bob.git cd Bob - 下载 Composer 并运行
composer install安装 Bob 的依赖:wget http://getcomposer.org/composer.phar php composer.phar install - 运行
php bin/bob install完成安装。默认情况下,bob命令会安装在/usr/local/bin目录下。你可以通过设置PREFIX环境变量来更改安装路径,命令将安装在$PREFIX/bin目录下。
2. 项目使用说明
初始化项目
- 在你的项目根目录下运行以下命令,生成一个空的
bob_config.php文件:php vendor/bin/bob --init - Bob 会从项目根目录下的
bob_config.php文件中加载任务。你还可以在bob_tasks目录中添加其他任务文件,Bob 会自动加载这些文件。
定义任务
- 在
bob_config.php文件中定义任务。例如,定义一个输出 "Hello World" 的任务:task('hello', function() { println('Hello World'); }); - 通过命令行运行任务:
php vendor/bin/bob hello - 如果没有指定任务,Bob 会尝试运行
default任务。你可以通过以下方式将任务设置为默认任务:task('default', array('hello'));
文件任务
文件任务是一种特殊的任务,只有在目标文件不存在或依赖文件比目标文件更新时才会运行。例如,定义一个将多个文件合并为一个文件的任务:
fileTask('concat.txt', array('file1.txt', 'file2.txt', 'file3.txt'), function($task) {
println("Concatenating");
$concat = '';
foreach ($task->prerequisites as $file) {
$concat .= file_get_contents($file);
}
@file_put_contents($task->name, $concat);
});
任务库
你可以将一组任务打包成任务库,以便在多个项目中复用。任务库需要实现 \Bob\TaskLibraryInterface 接口,并在 register 函数中注册任务。
3. 项目 API 使用文档
任务定义
task(string $name, callable $body): 定义一个任务。fileTask(string $name, array $prerequisites, callable $body): 定义一个文件任务。desc(string $description): 为任务添加描述。register(TaskLibraryInterface $library): 注册任务库。
任务执行
- 通过命令行运行任务:
php vendor/bin/bob <task_name>。 - 查看所有任务及其描述:
php vendor/bin/bob --tasks。
4. 项目安装方式
使用 Composer 安装
- 在
composer.json中添加chh/bob包。 - 运行
composer install --dev。 - 通过
php vendor/bin/bob调用 Bob。
系统级安装
- 克隆仓库或下载 Release。
- 安装依赖并运行
php bin/bob install。 - 通过
bob命令调用 Bob。
登录后查看全文
热门项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
532
3.75 K
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
67
20
暂无简介
Dart
772
191
Ascend Extension for PyTorch
Python
340
405
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
886
596
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
React Native鸿蒙化仓库
JavaScript
303
355
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
336
178