小编sie*_*e85的帖子

PHP - 获取下一个crontab运行的日期

我想得到下一个日期从一个给定的字符串运行cron,如Cron Format with secondsparameter(不完全等于cron格式).

我的代码:

$cron_format = explode(" ", "00 00 00 01 * *"); // <second> <minute> <hour> <day> <month> <week_day>
$date_diff   = explode(" ", "s i H d m w");     // php Date @link http://php.net/manual/en/function.date.php
$format = [];

foreach( $date_diff as $key=>$value) {
    $format[$value] = $cron_format[$key] !== "*" ? date($value, strtotime($cron_format[$key])) : date($value);
}

$spf = sprintf(
"%s-%s-%s %s:%s:%s", 
date("Y"), $format["m"], $format["d"], $format["H"], $format["i"], $format["s"]
);

$date = DateTime::createFromFormat("Y-m-d H:i:s", $spf);

// …
Run Code Online (Sandbox Code Playgroud)

php cron

10
推荐指数
2
解决办法
578
查看次数

PHPUnit测试一个带有expected()方法的类

问题是我嘲笑的依赖有一个expects()方法.这个类依赖于我正在测试的类.

setUp()方法

$this->test = $this->getMockBuilder(Request::class)->disableOriginalConstructor()
        ->getMock();
Run Code Online (Sandbox Code Playgroud)

所以当我写我的测试

$this->test->expects($this->once())->method('otherMethod')
        ->willReturn(0);
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

无法重新声明Mock_Test_f21c25ee :: expected()in ...

我怎么解决这个问题?

编辑:

我尝试了建议的解决方案与setMethodsExcept()我现在有一个不同的错误消息.我也在使用PHPunit 7.5

Mock_Test_fa1cb6c5 :: expected(PHPUnit\Framework\MockObject\Matcher\Invocation $ matcher)的声明应该与App\Services\Api\Test :: expected()兼容

注意:忘了提到我正在使用具有自己的TestBase类的Laravel 5.5

Edit2:在我尝试使用默认的PHPUnit测试用例之后,我仍然得到与上面相同的错误消息.(必须与错误兼容)

php phpunit

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

在node_modules文件夹中找不到模块(但文件存在)

当我运行yarn run watch(在我的 laravel 项目根目录中)时,它编译时没有错误。但是,如果我随后编辑文件,它会在终端中为文件夹.ts中的每个文件显示错误resources。文件中的打字稿.vue没有问题。另请注意,我所做的每个更改似乎也已编译,所以换句话说,它有效......但错误消息保留在控制台中。

我对每个文件收到的错误.ts是:

TS2307: Cannot find module '!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js' or its corresponding type declarations.

Run Code Online (Sandbox Code Playgroud)

该文件确实存在于我的node_module文件夹中。

我用谷歌搜索了它,我发现唯一与我的问题远程接近的是这个链接: https: //github.com/vuejs/vue-loader/issues/634

但那里建议的解决方案/解决方法都不适合我。

这是我的 tsconfig

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "experimentalDecorators": true,
    },
    "include": [
        "resources/js/**/*"
    ],
    "exclude": [
        "vendor",
    ]
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这要么是配置问题,要么是ts-loader或 的版本问题vue-loader

"ts-loader": "^8.2.0",
"typescript": "^4.3.2"
"vue-loader": "^15.7.0",

Run Code Online (Sandbox Code Playgroud)

网络包配置:

module: {
            rules: [
                {
                    test: /\.tsx?$/,
                    loader: "ts-loader",
                    options: {appendTsSuffixTo: …
Run Code Online (Sandbox Code Playgroud)

laravel typescript vue.js

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

标签 统计

php ×2

cron ×1

laravel ×1

phpunit ×1

typescript ×1

vue.js ×1