我刚发现这段代码,我不知道如何谷歌。 : - )
最后一个特质是什么? 我无法理解它的语法。 如果花括号之间的那些线是新实例的参数,那么它不应该在括号之间吗?
<?php
namespace Laravel\Dusk;
use Closure;
use BadMethodCallException;
use Illuminate\Support\Str;
use Illuminate\Support\Traits\Macroable;
use Facebook\WebDriver\WebDriverDimension;
class Browser
{
use Concerns\InteractsWithAuthentication,
Concerns\InteractsWithCookies,
Concerns\InteractsWithElements,
Concerns\InteractsWithJavascript,
Concerns\InteractsWithMouse,
Concerns\MakesAssertions,
Concerns\WaitsForElements,
Macroable {
__call as macroCall;
}
// ...
}
代码来自 Laravel \ Dusk 。 这是原始GitHub repository和the Class itself
答案 0 :(得分:3)
此:
namespace Laravel\Dusk;
use Illuminate\Support\Traits\Macroable;
class Browser
{
use Macroable {
__call as macroCall;
}
public function __call($method, $parameters)
{
// this is defined in THIS class
}
}
只需对__call
特征中的Macroable
方法进行别名,并将其作为
$this->macroCall($method, $parameters)
这是为了避免在此类和导入的特征中定义的__call
方法的冲突