小编Mul*_*ave的帖子

带有Supervisor的Nginx不断改变状态b/w Running and Starting

以下是supervisorctl status每2秒运行状态的预览:

[root@docker] ~ # supervisorctl status
nginx                            RUNNING    pid 2090, uptime 0:00:02
[root@docker] ~ # supervisorctl status
nginx                            STARTING   
[root@docker] redis-2.8.9 # supervisorctl status
nginx                            RUNNING    pid 2110, uptime 0:00:01
Run Code Online (Sandbox Code Playgroud)

这是nginx每隔几秒重生一次是否正常?知道nginx设置为使用此设置在后台运行:

[program:nginx]
command=/usr/sbin/nginx
stdout_events_enabled=true
stderr_events_enabled=true
Run Code Online (Sandbox Code Playgroud)

nginx supervisord

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

PHP 单元测试和使用 Mockery 进行模拟

这可能是我对嘲笑的误解。我真的很感激关于为什么嘲笑不存在或存在的类是一件好事的解释?

示例场景:假设我们有一个类依赖于第二个类的输出,并且我们更改了输出格式或其他内容。尽管它们在第一类中已经过时了,但这不会让我们的测试保持成功吗?

php phpunit unit-testing mockery

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

使用Regex匹配函数体

给定一个虚函数:

public function handle()
{
  if (isset($input['data']) {
    switch($data) {
      ...
    }
  } else {
    switch($data) {
      ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的目的是获取该函数的内容,问题是匹配花括号的嵌套模式{...}.

我遇到过递归模式,但无法理解与函数体相匹配的正则表达式.

我尝试了以下(没有递归):

$pattern = "/function\shandle\([a-zA-Z0-9_\$\s,]+\)?". // match "function handle(...)"
            '[\n\s]?[\t\s]*'. // regardless of the indentation preceding the {
            '{([^{}]*)}/'; // find everything within braces.

preg_match($pattern, $contents, $match);
Run Code Online (Sandbox Code Playgroud)

这种模式根本不匹配.我确信这是最后一点是错误的,'{([^{}]*)}/'因为当身体内没有其他支撑时,该模式有效.

将其替换为:

'{([^}]*)}/';
Run Code Online (Sandbox Code Playgroud)

它匹配到语句}中的开关关闭if并停在那里(包括}开关但不包括开关if).

除了这种模式,同样的结果:

'{(\K[^}]*(?=)})/m';
Run Code Online (Sandbox Code Playgroud)

php regex parsing text-parsing regex-lookarounds

3
推荐指数
1
解决办法
1349
查看次数

Laravel 4 - 使用包中的Validator进行验证

试图在我的Package类中使用Validator类.现在使用Facades,包含类并使用它们变得有点棘手.

use Illuminate\Validation\Validator
...
protected function valid($request)
{
  return Validator::make($request, ['url'=>'required|url'])->passes();
}
Run Code Online (Sandbox Code Playgroud)

结束给我:

PHP致命错误:调用未定义的方法Illuminate\Validation\Validator :: make()

这是真的,因为我没有使用Facade本身.查看Validator类构造函数:

__construct(\Symfony\Component\Translation\TranslatorInterface $translator, array $data, array $rules, array $messages) : void
Run Code Online (Sandbox Code Playgroud)

这是我需要帮助的地方:)

laravel laravel-4

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