nubs/sensible

一个用于查找合理用户程序的库,如编辑器、分页器和浏览器。

v0.5.0 2016-05-23 19:26 UTC

This package is auto-updated.

Last update: 2024-09-12 21:27:12 UTC


README

一个用于查找合理用户程序的PHP库,如编辑器、分页器和浏览器。

Build Status Scrutinizer Code Quality Code Coverage

Latest Stable Version Total Downloads License

Dependency Status

要求

此库需要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 获取完整的许可证文本。