nubs / sensible
一个用于查找合理用户程序的库,如编辑器、分页器和浏览器。
Requires
- php: ~5.6 || ~7.0
- nubs/which: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
- satooshi/php-coveralls: ~1.0
- squizlabs/php_codesniffer: ~2.3
Suggests
- brianium/habitat: For better access to environment variables (e.g., for mocking).
- nubs/which: For locating commands in PATH rather than using absolute paths.
- symfony/process: For executing the commands rather than just locating them.
This package is auto-updated.
Last update: 2024-09-12 21:27:12 UTC
README
一个用于查找合理用户程序的PHP库,如编辑器、分页器和浏览器。
要求
此库需要PHP 5.6或更高版本。
安装
此包使用 composer,因此您只需将 nubs/sensible
添加为您的 composer.json
文件中的依赖项,或执行以下命令
composer require nubs/sensible
支持的程序类型
此库支持打开文本编辑器(如vim)、分页器(如more)和浏览器(如firefox)。
程序工厂
初始化支持的程序加载器的一种推荐方式是使用包含的工厂。
浏览器工厂
浏览器工厂使用命令定位器(通过 which)来确定哪些浏览器可用。默认的浏览器列表是
- sensible-browser
- firefox
- chromium-browser
- chrome
- elinks
创建浏览器对象的简单示例
$commandLocatorFactory = new Nubs\Which\LocatorFactory\PlatformLocatorFactory(); $browserFactory = new Nubs\Sensible\CommandFactory\BrowserFactory( $commandLocatorFactory->create() ); $browser = $browserFactory->create();
如果您想覆盖默认的浏览器列表
$commandLocatorFactory = new Nubs\Which\LocatorFactory\PlatformLocatorFactory(); $browserFactory = new Nubs\Sensible\CommandFactory\BrowserFactory( $commandLocatorFactory->create(), ['my-favorite-browser', 'some-fallback-browser'] ); $browser = $browserFactory->create();
编辑器工厂
如果设置了您的 EDITOR
环境变量,则编辑器工厂将使用它,否则它将使用命令定位器(通过 which)来确定哪些编辑器可用。默认的编辑器列表是
- sensible-editor
- nano
- vim
- ed
创建编辑器对象的简单示例
$commandLocatorFactory = new Nubs\Which\LocatorFactory\PlatformLocatorFactory(); $editorFactory = new Nubs\Sensible\CommandFactory\EditorFactory( $commandLocatorFactory->create() ); $editor = $editorFactory->create();
如果您想覆盖默认的编辑器列表
$commandLocatorFactory = new Nubs\Which\LocatorFactory\PlatformLocatorFactory(); $editorFactory = new Nubs\Sensible\CommandFactory\EditorFactory( $commandLocatorFactory->create(), ['my-favorite-editor', 'some-fallback-editor'] ); $editor = $editorFactory->create();
分页器工厂
如果设置了您的 PAGER
环境变量,则分页器工厂将使用它,否则它将使用命令定位器(通过 which)来确定哪些分页器可用。默认的分页器列表是
- sensible-pager
- less
- more
创建分页器对象的简单示例
$commandLocatorFactory = new Nubs\Which\LocatorFactory\PlatformLocatorFactory(); $pagerFactory = new Nubs\Sensible\CommandFactory\PagerFactory( $commandLocatorFactory->create() ); $pager = $pagerFactory->create();
如果您想覆盖默认的分页器列表
$commandLocatorFactory = new Nubs\Which\LocatorFactory\PlatformLocatorFactory(); $pagerFactory = new Nubs\Sensible\CommandFactory\PagerFactory( $commandLocatorFactory->create(), ['my-favorite-pager', 'some-fallback-pager'] ); $pager = $pagerFactory->create();
使用程序
一旦您使用其查找用户合理命令的策略创建了程序类型,您就可以使用它来处理文件/数据等。
浏览器
浏览器可以执行以加载支持的URI。例如
$browser->viewURI( new Symfony\Component\Process\ProcessBuilder(), 'http://www.google.com' );
编辑器
可以使用编辑器来编辑文件。例如
$process = $editor->editFile( new Symfony\Component\Process\ProcessBuilder(), '/path/to/a/file' ); if ($process->isSuccessful()) { // continue }
还有编辑字符串的便捷简写,通过临时文件在编辑器中执行。例如
$updatedMessage = $editor->editData( new Symfony\Component\Process\ProcessBuilder(), 'a message' );
如果进程没有成功退出,这将返回未更改的输入。
分页器
分页器将文件或字符串传递给配置的分页器以方便查看。例如,对于文件源
$process = $pager->viewFile( new Symfony\Component\Process\ProcessBuilder(), '/path/to/a/file' );
或对于字符串源
$process = $pager->viewData( new Symfony\Component\Process\ProcessBuilder(), 'a message' );
CLI界面
还有Linux系统的CLI界面,模仿Ubuntu的 sensible-*
命令。它作为 nubs/sensible-cli
提供。
许可证
sensible 依据MIT许可证授权。请参阅 LICENSE 获取完整的许可证文本。