问题标签 [symfony-console]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 提前退出 Symfony 控制台执行()?
我使用 Sympfony Console 作为独立组件。
假设我有一个命令定义如下:
显然使用它很可能不正确return false;
那么正确的方法是什么,我似乎无法在文档中找到参考或示例?我能找到的最接近的东西是参考,ConsoleEvents::TERMINATE
但使用事件来实现我的目标似乎有点矫枉过正?
php - 本地主机无法与 Symfony 的全新安装一起使用
我知道上面有一个线程(“Symfony 全新安装无法在我的本地主机上运行”)但该解决方案没有帮助我。
我是 Symfony 的新手,我尝试创建我的第一个项目。我安装了一个新的 Symfony 副本,然后尝试启动服务器,但我无法访问 localhost:8000,它永远加载并且没有任何反应。
我的文件夹:
我运行了这个命令:
php bin/console server:run
它说一切正常,我现在可以访问它。
..但是当我尝试访问它时,标签会永远加载。
例如,我已经尝试在另一个端口上启动服务器php bin/console server:start *:8080
,但同样的问题发生了。难道我做错了什么 ?感谢您的帮助,并为我糟糕的英语感到抱歉。
php - 在 null 上调用成员函数 addArguments()
我尝试模拟我的 laravel 控制台命令以进行 PHPUnit 测试。作为构造函数参数,它需要一个 laravel 配置存储库的实例:
我的控制台命令的相应构造函数如下所示:(其中Repository
类型为Illuminate\Config\Repository
)
因此,如果我现在运行单元测试,我会收到此错误:
1) Tests\Unit\Commands\ AmazingCommandTest::test_something_to_be_working 错误:在 null 上调用成员函数 addArguments()
/Users/xyz/Projects/packages/amazingpackage/foobar/vendor/laravel/framework/src/Illuminate/Console/Command.php:144
这指向方法中的一行protected function configureUsingFluentDefinition() {}
:
$this->getDefinition()->addArguments($arguments);
其中 getDefinition() 返回一个 InputDefinition:
getDefinition()
只检查是否$this->definition
已定义,如果没有则抛出 LogicException。
那么,我在这里做错了什么?有什么我可能想念的吗?
symfony - 使用 Symfony 控制台在后台启动服务器时出现问题
我将 Symfony 控制台更新到 v4.12.0 。现在,当我使用 Symfony 控制台在后台启动服务器时,会symfony server:start -d
显示以下错误:
|错误| SERVER 无法进入后台错误=“无法观看状态文件:参数不正确。”
我该如何解决这个错误?
php - 诗篇:返回多种类型的句柄方法
编辑这是 Psalm 的事情,而不是 PHP MD 的事情。
我正在编写一个 Symfony 控制台命令。在其execute
方法中,我使用该方法检索参数$input->getArgument('argument_name')
。我将这个值传递给一个服务,它期望这个值是字符串类型的。
整体代码:
PHP MD Psalm 没有看到我已经确认这$identifier
是一个字符串,然后将它作为参数传递给其中一个vehicleService
方法并抛出PossiblyInvalidArgument
错误,因为Argument 1 ... expects string, possibly different type array<array-key, string>|null|string provided
.
如何确保 PHP MD 这是一个字符串?
php - 使用 Symfony 控制台(或 PHP)更新行文本
我想制作一个控制台应用程序,为长时间运行的进程显示用户反馈。例子:
我想在不写新行的情况下更新5mb字,完成后继续下一行。我不能使用进度条,因为在运行命令之前我无法获得总数......
有没有办法用 Symfony 控制台做到这一点?
symfony - 从控制台命令运行时,mpdf 无法打开图像
我正在使用 Symfony 4.3
我有一个InvoiceService
,它将发票生成为 pdf 文件。
对于 html 内容,我使用\Twig\Environment::render()
方法。在模板中,我asset()
对图像使用了 twig 函数。
当我从控制器运行此服务时,发票生成没有问题,但是当我从控制台命令运行此服务时,我收到错误:
警告:fopen(/img/core-img/logo.png):无法打开流:没有这样的文件或目录
当不从控制器运行时,是否应该以不同的方式使用 Twig 环境?
这是负责的代码:
通过依赖注入$this->twig
并被
传递\Twig\Environment
$this->mpdf
我试图通过asset('path/to/image')
和包含图像absolute_url(asset('path/to/image'))
,两者都导致白色正方形中的红色 X 代替图像。从控制器运行时,图像就在那里。
php - 从 Symfony 5 OutputInterface 获取整个控制台输出
我有一个像这样的 Symfony 5 命令:
此命令会生成大量带有$this->io->caution(...)
、$this->io->block(....)
等 的输出$this->io->text(....)
。
有时(并非总是:存在一些运行时条件),在执行结束时,我想访问命令生成的整个输出,然后通过电子邮件发送。所以....我怎样才能取回OutputInterface
所显示的一切?有没有一种$this->output->getBuffer()
?
只要我现在仍然可以在标准输出(我的终端)上显示所有内容,我就可以毫无问题OutputInterface $output
地与其他东西(logger ,也许?)交换。
php - 如何将通配符 GLOB 传递给由 Symfony 控制台包装的 rsync?
我想做的事
我想将所有 XML 文件/source/
从/target/
我如何尝试做到这一点
我正在使用 Symfony 进程/控制台组件作为 rsync 的包装器。
- 流程组件 ^5.0
- Symfony 控制台 ^4.3
- PHP 7.2。
我的问题
php bin/console command:moveFiles /source/*.xml /target/
通过运行结果调用我的命令:
Too many arguments, expected arguments "command" "source-path" "target-path".
似乎 /source/*.xml 中的 * 会抛出 Symfony (?) 并且不会让它识别提供的正确数量的参数。转义 * 会rsync -avz --remove-source-files /source/\*.xml /target/
导致:
rsync: link_stat "/source/*.xml" failed: No such file or directory (2)
如何将通配符 GLOB 传递给 symfony 包装的 rsync?有没有另一种方法可以使用控制台来实现这一点?