标签: laravel-artisan

Laravel 测试 | Laravel Artisan Command 中的模拟对象

我想测试我的 Laravel Artisan 命令。所以我需要模拟一个对象并存根这个模拟对象的方法。在我的测试中,我无法使用真实的SFTP环境。

这是handle()我的命令:

public function handle()
{
   $sftp = new SFTP('my.sftpenv.com');
   $sftp->login('foo', 'bar');
}
Run Code Online (Sandbox Code Playgroud)

我想在测试中模拟 SFTP:

$sftp = $this->createMock(SFTP::class);
$sftp->expects($this->any())->method('login')->with('foo', 'bar');
$this->artisan('import:foo');
Run Code Online (Sandbox Code Playgroud)

运行测试结果在 a 中Cannot connect to ...:22,它来自login的原始方法SFTP。所以mock/stub不生效。

所以我的问题是:如何在 Laravel Artisan 命令测试中模拟对象?

command unit-testing laravel laravel-artisan

5
推荐指数
1
解决办法
1317
查看次数

Laravel:为了安全起见,队列工作失败了 pcntl_signal()

尝试运行php artisan queue:work会返回此错误:

ErrorException  : pcntl_signal() has been disabled for security reasons
Run Code Online (Sandbox Code Playgroud)

已经pcntl_signal, pcntl_signal_dispatch从php.ini中的disable_functions中删除并重新启动,但没有效果 安全性

queue laravel laravel-artisan

5
推荐指数
1
解决办法
1527
查看次数

生成 Artisan 命令而不是“php artisan serve”

我想做一个别名

php artisan go

代替

php artisan serve

我会很感激任何其他想法:-)。我也阅读了这个链接并搜索了很多,但不是很清楚,其他问题是关于制作class.env文件等。

提前致谢

更新 这个问题是不能重复的这个,因为它不包含调用php artisan本身。

laravel laravel-artisan

5
推荐指数
1
解决办法
3075
查看次数

如何撤消或停止 php artisan Schedule:run

这是我的 Laravel 5.3 开发环境

我正在测试预定的电子邮件并运行:

php artisan schedule:run
Run Code Online (Sandbox Code Playgroud)

这工作正常并且正在按预期发送电子邮件。

但我实际上希望在 crontab 文件中包含此内容:

 * * * * * php /home/test/website/artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

自从我在 crontab 文件中添加该行后,我收到了两封电子邮件。我删除了该行,所以现在只收到一封电子邮件。

但现在我想反转/撤消/停止/终止 php artisan Schedule:run 以便我可以从 crontab 文件控制计划。

我看到这篇文章:停止 Laravel 计划命令一旦启动?

但接受的答案( ps -fe | grep artisan 和 Kill PID )对我来说不起作用,因为我收到消息:

kill: (PID) - No such process
Run Code Online (Sandbox Code Playgroud)

每次我跑步

ps -fe | grep artisan 
Run Code Online (Sandbox Code Playgroud)

它似乎有一个不同的 PID - 不知道我在这方面做错了什么。

我也停止了我的流浪盒,但这似乎没有任何效果。

任何建议都会很棒!


更新:以防万一将来我碰巧遇到同样的问题并再次偶然发现这个帖子 - 我无法解决这个问题,并且已经决定不再值得花更多时间来解决它 - 将忍受现在就这样吧。通过从 crontab 中删除该行,我只收到一封电子邮件,所以现在一切都很好。

php laravel laravel-artisan

5
推荐指数
1
解决办法
2万
查看次数

Laravel RouteServiceProvider 地图函数未调用

我正在使用map中的函数来RouteServiceProvider操作一些路线,然后再进行进一步处理。当我在本地计算机上运行时,一切运行正常,但在生产服务器上,由于某种原因,没有调用任何地图函数。为了确保该错误不是出于某种原因出现在我自己的代码中,我使用了原始的 RouteServiceProvider.php,仅添加了一些回声以用于测试目的:

<?php

namespace App\Providers;

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    /**
     * The path to the "home" route for your application.
     *
     * @var string
     */
    public const HOME = '/home';

    /**
     * Define your route model bindings, …
Run Code Online (Sandbox Code Playgroud)

php caching laravel laravel-artisan

5
推荐指数
1
解决办法
3825
查看次数

Laravel - php artisan make:model 项目不起作用

我需要使用此命令来创建模型。

当我这样做时:

php artisan make:model Project
Run Code Online (Sandbox Code Playgroud)

我收到

[InvalidArgumentException]
There are no commands defined in the "make" namespace.
Run Code Online (Sandbox Code Playgroud)

因此,在我正在关注的教程中,这个人使用它来制作模型。

我应该怎么办?

所以,我发现我正在使用 laravel 4 并且该命令不存在。

如果没有这个 make 命令,我如何构建模型?

php laravel laravel-4 laravel-artisan

4
推荐指数
1
解决办法
3119
查看次数

php artisan 服务使我的 cmd 提示符卡住

我在 Windows cmd 提示符下使用 Laravel 5。

我有一个非常简单的问题
php artisan serve

要启动服务器,我的命令提示符被卡住,无法执行任何其他 artisan 命令,直到我关闭命令行然后重新启动它,然后执行代码,然后启动 laravel 服务器。

有什么简单的办法吗?

php laravel laravel-5 laravel-artisan

4
推荐指数
1
解决办法
7684
查看次数

Laravel 工匠路由列表中的 HTTPException

我遇到了一个问题,即运行php artisan route:list会抛出 aSymfony\Component\HttpKernel\Exception\HttpException但它没有给我任何其他输出或在我能看到的任何地方记录它。

我已经尝试composer updatedump-autoload刷新路由缓存,调试也设置为true。我怎样才能获得更多关于HttpException被抛出的信息?

php symfony laravel laravel-routing laravel-artisan

4
推荐指数
1
解决办法
2007
查看次数

使用 artisantinker 时是否有一种方便的方法来清除控制台?

我希望能够在使用 artisantinker 时清除控制台,就像在使用 sqlite3 时使用.cls清除控制台一样

操作系统:Windows CLI:Git Bash / Powershell

laravel laravel-artisan

4
推荐指数
1
解决办法
3657
查看次数

laravel Illuminate\Routing\UrlGenerator 在 artisan 中出现错误

我使用php artisan命令但看到此错误。
此错误显示在所有 artisan 命令中

Argument 2 passed to Illuminate\Routing\UrlGenerator::__construct() must be an instance of Illuminate\Http\Reque   
      st, null given, called in E:\appoo\vendor\laravel\framework\src\Illuminate\Routing\RoutingServiceProvider.php
      on line 65
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

php laravel laravel-artisan

4
推荐指数
1
解决办法
3668
查看次数