脉冲风暴 / 研钵
一个基于模块的PHP代码的CLI框架。还包括大量的Magento 2代码生成命令。
Requires
- ext-xml: *
- abraham/twitteroauth: 0.7.2
- fzaninotto/faker: ^1.6.0
- michelf/php-markdown: 1.6.0
- nexmo/client: @beta
- pear/numbers_words: 0.18.1
Requires (Dev)
- magento/magento-coding-standard: ^4.0
- phing/phing: 2.*
- phpspec/prophecy: 1.7.0
- phpunit/phpunit: ^6.5
- dev-master
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/composer/guzzlehttp/psr7-1.9.1
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-astorm-patch-1
- dev-astorm/php-8
- dev-astorm/more-skips
- dev-astorm/issue-524
- dev-magento-1-generate-module
- dev-open-tracing
- dev-add-version-to-cache-hash
- dev-exclude-from-build
- dev-gitbash-paths
- dev-windows-home-path
- dev-issue-502-test-and-document-composer
- dev-issue-497-base-gen-folder
- dev-issue-420-theroy-of-operation
- dev-small-change
- dev-issue-416-input-output
- dev-issue-415-third-party-source
- dev-issue-419-pestle-build
- dev-issue-472-dev-env
- dev-local-travis
- dev-phpcs
- dev-474-import-from-sources
- dev-badge
- dev-other-module-folders
- dev-issue-387-add-fieldset
- dev-issue-379-add-field
- dev-issue-408-ui-form
- dev-issue-395-schema-add-column
- dev-issue-373-add-column
- dev-issue-411-ui-grid
- dev-no-x-men
- dev-issue-403-ui-node
- dev-issues-401-406
- dev-reorder-ui-components
- dev-issue-386-log-levels
- dev-issue-394-config-helper
- dev-issue-378-remove
- dev-issue-371-remove-named-node
- dev-further-reading-observers
- dev-issue-400-observer
- dev-issue-393-preference
- dev-issue-382-plugin-xml
- dev-issue-368-di
- dev-issue-396
- dev-issue-388-edit-controller-acl
- dev-issue-383
- dev-issue-374-acl
- dev-issue-405
- dev-issue-435
- dev-issue-380
- dev-issue-399
- dev-issue-389-view
- dev-issue-372-route
- dev-fix-setup-link
- dev-issue-390
- dev-issue-381
- dev-issue-370
- dev-issue-369-full-module
- dev-issue-423
- dev-issue-413-homepage
- dev-adding-links
- dev-doc_sprint_1
- dev-fixing-rtd
- dev-readthedocs
- dev-docs
- dev-ascii-table
- dev-general-cleanup
- dev-fix-acl-route
- dev-fix-readline
- dev-generic_parameter
- dev-php7_tests
- dev-better-function-parsing
- dev-function-name-test
- dev-container_not_block
This package is auto-updated.
Last update: 2024-09-19 22:33:56 UTC
README
什么是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(这将调用构建
phar
的phing
任务)
如果你对框架本身感兴趣,可以使用项目根目录中的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 年中后期很有用。简化的说明如下:
- 安装 Homebrew
- 运行
$ brew install bash-completion
以安装 bash-completion 软件包 - 通过运行
$ . /usr/local/etc/bash_completion
启用补全脚本 -- 可选地将此命令(或类似的命令)添加到您的.bash_profile
文件中