一个基于模块的PHP代码的CLI框架。还包括大量的Magento 2代码生成命令。

维护者

详细信息

github.com/astorm/pestle

来源

问题

安装量: 4,681

依赖者: 0

建议者: 0

安全: 0

星星: 533

关注者: 41

分支: 101

开放问题: 184

1.5.3 2020-10-09 20:10 UTC

This package is auto-updated.

Last update: 2024-09-19 22:33:56 UTC


README

Build Status Documentation Status

什么是Pestle?

Pestle是

  • 一个用于创建和组织命令行程序的PHP框架
  • 在PHP中实现Python风格模块导入的实验
  • 一组命令行程序,主要专注于Magento 2代码生成

Pestle源于我想要解决在我的~/bin中不断增长的简单PHP脚本数量,以及我对PHP命名空间系统方向的个人不满。

PHP不需要另一个命令行框架。Symfony的console已经做得很好,成为了构建现代PHP命令行应用的默认框架。有时,当你开始构建一些没有人需要的东西时,你最终会得到一些人们没有意识到自己想要的东西。

如何使用

开始使用最简单的方法是使用curl获取最新版本

curl -LO http://pestle.pulsestorm.net/pestle.phar

你可以使用以下命令查看命令列表

php pestle.phar list-commands

并使用以下命令获取特定命令的帮助

php pestle.phar help generate_module

如果你想要自己构建phar,我们有一个phing build.xml文件设置好了,所以你应该只需要做以下几步来构建一个独立的pestle.phar可执行文件:

  • git checkout git@github.com:astorm/pestle.git
  • composer.phar install
  • ./build.sh(这将调用构建pharphing任务)

如果你对框架本身感兴趣,可以使用项目根目录中的runner.php。我个人将其添加到我的~/bin中。

#File: ~/bin/pestle_dev
#!/usr/bin/env php
<?php
require_once('/Users/alanstorm/Documents/github/astorm/pestle/runner.php');

升级故障排除

如果你已经升级了pestle,并且看到了以下异常

PHP致命错误:无法重新声明Pulsestorm\Magento2\Cli\Help\pestle_cli()

尝试删除以下临时文件夹。

/tmp/pestle_cache

我们知道这不是最佳方案,我们正在努力找到一个更持久的解决方案。

示例命令

尝试

$ pestle.phar generate_module

从Magento 2子目录中,了解我们在做什么。

如何在你的应用程序中使用Pestle代码

Pestle和pestle_import函数是一种实验,你可能不想直接在基于PHP的应用程序中运行module.php文件中的代码。幸运的是,我们为你提供了一个解决方案——随着Pestle的每次发布,我们都会在library/autoloader.php中构建一个Composer兼容的自动加载器。这会将整个Pestle库结构作为一个单一的PHP文件加载,具有正确的块命名空间(目前为library/all.php)。这意味着你可以使用Composer将Pestle包含在你的项目中

"require": {
    "pulsestorm/pestle": "1.0.*"
}

然后通过原生的PHP命名空间导入Pestle代码

//include is probably not neccesary, usually handled by your framework
include 'vendor/autoload.php';
\Pulsestorm\Pestle\Library\output("Hello World");

我们在这方面可能有具体的策略,但我们的计划是让这些变化对用户来说是透明的。如果我们将来将生成的库拆分成多个文件,或者找到将pestle_import集成到原生PHP代码中的合理方式,并且你将此项目作为Composer库使用——那些变化应该对你来说是透明的。

你对这种编译/"转换"/模块导入有强烈的看法吗?我们非常希望你能参与到项目中来。在GitHub问题中大声疾呼,或者发起pull request。

想要了解更多?我们将使用wiki进行文档,直到我们超出其范围。

实验性Tab补全

Pestle 包含一个实验性的tab 自动补全脚本。如果与系统中的 bash_completion 子系统一起使用,该脚本将允许使用 [tab] 键来自动补全命令名称。

$ pestle.phar magento2:generate:ui: (press the tab key)
add-column-text    add-schema-column  form
add-form-field     add-to-layout      grid

只需将 pestle-autocomplete.sh 文件复制或创建符号链接到您的 bash_completion.d 文件夹即可。

如果您正在运行 MacOS 或 MacOS X,您需要通过 Homebrew(或您选择的包管理器)安装 bash_completion 的现代版本。是的,这很烦人。我们发现了这些说明在 2018 年中后期很有用。简化的说明如下:

  1. 安装 Homebrew
  2. 运行 $ brew install bash-completion 以安装 bash-completion 软件包
  3. 通过运行 $ . /usr/local/etc/bash_completion 启用补全脚本 -- 可选地将此命令(或类似的命令)添加到您的 .bash_profile 文件中