masterminds/fortissimo-cli-base

Fortissimo CLI基于应用的骨架。

dev-master 2012-12-12 15:36 UTC

This package is not auto-updated.

Last update: 2024-09-14 11:49:02 UTC


README

这是一个使用PHP、FortissimoComposer构建CLI应用的骨架项目。

Fortissimo是一个基于命令链的框架。这意味着你创建一些包含逻辑的可重用可配置的部分,称为命令。每个回调(在CLI应用的情况下,我们有CLI命令)执行这些命令的链。不同的回调可以共享命令。我知道这有点抽象。很快会有更多的实际示例。

使用骨架

有两种方法开始使用这个骨架项目。最简单的是使用composer create-project,例如

> composer create-project masterminds/fortissimo-cli-base foo-project-name

这将使你立即开始。或者,你可以直接从git中获取这个项目。然后在项目的根目录下运行composer install以安装所有项目依赖。你还应该更新composer.json文件以包含你自己的依赖,并添加你的psr-0配置组件以进行自动加载。

项目结构

该项目结构设计得可以让你迅速上手。预期使用如下

src目录

这是放置所有自定义代码的地方。理想情况下,它将使用PSR-0布局放置在此处,并且根composer.json文件将更新以便可以使用composer自动加载器。

test目录

这是放置你的代码测试的地方。测试驱动开发是一种很好的实践,对吗?!

bin目录

此目录包含一些重要的文件,可以帮助你立即开始。

  • compile.php - 这是一个Phar编译器。它将应用程序编译成一个Phar文件,这样你就可以将其作为单个文件分发。如果你打开此文件并编辑它,你会看到许多可配置选项,例如文件名、要包含的文件和文件夹等。
  • _shared.php - 这是一个应用程序脚本。这是Phar和非Phar执行版本之间共享的文件。这是需要更新的文件,以便用于应用程序。开箱即用,此文件应该已经准备好用于大多数应用程序。
  • app.php - 这是一个非Phar形式的应用程序执行脚本。这是在测试等中应该调用的文件。它设置文件系统环境,然后再调用_shared.php
  • _phar.php - 这是一个类似于app.php的Phar存根。区别在于,这个文件在调用_shared.php之前设置了Phar文件的环境。

对于大多数应用程序,只需要更改_shared.phpcompile.php文件,通常只是为了自定义应用程序的名称。

config目录

我倾向于将命令链模式看作PHP中的管道。类似于Yahoo Pipes,但用PHP编写。这是配置链的地方。

当应用程序启动时,它会按字母顺序包含此目录中的每个PHP文件,以加载配置选项。初始文件000-init.php被命名为这样,以便它首先被包含。它执行一些初始设置。

在此目录中的文件中,你将编写命令链。更多细节和示例即将推出。

编译Phar

谁想要一个实际上是一堆文件并且需要调用内部文件的命令行应用程序?不是我。我更喜欢名字简单、可以分发的一个文件。PHP Phar 文件让我们能够将整个项目放在一个文件中。

要执行这些 Phar 文件,您需要 PHP 和操作系统上的任何依赖项。在 Mac 上工作,我需要的所有东西都已经打包并可以在该系统上使用。

准备好将您的应用程序转换为一个单一文件后,打开 bin/compile.php 以包含应用程序的名称和正确的位置。然后使用 php bin/compile.php 执行此文件,它将为您生成一个 Phar 文件。

像 composer 一样,这些文件可以使用 PHP 执行,也可以作为自执行文件运行。

命名注意事项:我经常看到 Phar 文件有 .phar 扩展名。这是可选的。您可以创建没有扩展名的 Phar 文件。这加上自执行功能意味着您可以编写一个命令行应用程序,比如 AwesomeSauce,然后在 CLI 中调用它。您如何做到这一点完全取决于您。我只是在说有这些选项。

许可证

此项目受 MIT 许可证许可。