假设我有一个 bash 命令mycommand。有时它会向输出写入一些内容但总是返回退出代码 0。我需要使用管道将退出代码修复为 0 以表示空输出,而其他内容则表示非空输出。
mycommand | ???
Run Code Online (Sandbox Code Playgroud)
我对 ifs 或自定义命令不感兴趣。我只想要一个简单的命令,比如 grep 和一些参数来检查它的输入是否为空并返回退出代码。
如果输入不为空,则最好打印输入,但它不是强制性的。
我正在尝试使用基于给定国家/地区验证的邮政编码创建一个地址实体。要走的路显然是 CallbackValidator。现在我有这个代码:
use SLLH\IsoCodesValidator\Constraints\ZipCode;
use Symfony\Component\Validator\Constraints\Callback;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
class Address
{
/**
* @Callback()
*/
public function validatePostalCode(ExecutionContextInterface $context)
{
$constraint = new ZipCode([ 'country' => $this->country ]);
$violations = $context->getValidator()->validate($this->postalCode, $constraint);
foreach ($violations as $violation) {
$context->getViolations()->add($violation);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的问题是违规行为没有正确的路径。不过不知道怎么设置。还$context->buildViolation($violation->getMessage())并不好,因为我不得不手动复制所有的违规可能具有的特性。
编辑:我试过了,它确实很丑。
我正在尝试event使用 pecl 安装 PHP 扩展。在安装过程中我收到几个提示:
Enable internal debugging in Event [no] :
Enable sockets support in Event [yes] :
libevent installation prefix [/usr] :
Include libevent's pthreads library and enable thread safety support in Event [no] :
Include libevent protocol-specific functionality support including HTTP, DNS, and RPC [yes] :
Include libevent OpenSSL support [yes] :
PHP Namespace for all Event classes [no] :
openssl installation prefix [no] :
Run Code Online (Sandbox Code Playgroud)
但 ofc 这只发生在交互模式下。我需要在没有交互的情况下执行此操作,例如在 Dockerfile 中。默认值对我不起作用,因此我需要使用命令行选项更改它们。如何?
请记住,我需要对每个问题给出不同的答案,所以yes '' | pecl …
在我的一种自定义表单类型中,我需要向该字段添加一个自定义HTML属性。但是,该属性基于数据。因此,我添加了一个事件处理程序,但不确定该如何处理。
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$data = $event->getData();
// not sure what to do here.
};
Run Code Online (Sandbox Code Playgroud)
也许应该在其他地方完成。请记住,对于我的用例,我需要最初设置为表单的数据,而不是提交的数据。
编辑:有人要求我提供我想要达到的目标的更多详细信息。基本上,我需要将数据库中的初始数据(在PRE_SET_DATA事件中可用)放入data-*HTML属性,以便javascript可以使用它。
更新:即使几个月后也没有好的答案,所以我认为目前不可能解决这个问题。
我有一个Symfony/Console命令,它使用Guzzle Pool一次下载几个文件.我已经有Guzzle报告每个文件的下载进度,这很好.
现在我想使用Symfony/Console 的ProgressBar帮助器来改进它.问题是我为ProgressBar找到的所有示例只使用一个进度条.我需要几个独立的进度条 - 每个下载一个.你能给我一些提示如何实现吗?