我似乎无法让这个工作.我有一个函数,它接受一个我想调用的参数.
protected function testFunc($param) {
echo $param;
}
protected function testCall(callable $testFunc) {
call_user_func($testFunc);
}
public function testProg($param) {
$this->testCall([$this, 'testFunc']);
}
Run Code Online (Sandbox Code Playgroud)
我试过了
$this->testCall([[$this, 'testFunc'], $param]);
Run Code Online (Sandbox Code Playgroud)
和
$this->testCall([$this, 'testFunc($param)']);
Run Code Online (Sandbox Code Playgroud)
和
$this->testCall('TestClass::testFunc($param));
Run Code Online (Sandbox Code Playgroud)
闭包是我唯一的选择,或者如何将参数传递给可调用函数
我有一些代码,每次onmouseclick工作,并在我相应设置时不断onmousemove.我正在寻找一种方法来结合两者(即像点击和拖动),我认为这将是一个简单的任务,但找不到任何简单的解释.我得到的最接近的是拖放教程.
在onmouseclick事件被触发时,我是否必须调用onmousemove事件?或者有什么非常简单的我完全忽视?
干杯
我有各种类型的测试(单位,验收等),我为粒度分配了多个标签
/**
* @test
* @group unit
* @group controllers
*/
/**
* @test
* @group unit
*/
/**
* @test
* @group controllers
*/
Run Code Online (Sandbox Code Playgroud)
是否可以运行仅匹配两个或更多组的phpunit测试?就像是
--group unit|controllers
Run Code Online (Sandbox Code Playgroud)
在这种情况下,应该运行的唯一测试将是第一个测试,因为它同时具有unit
和controllers
组,而其他测试不会运行.
使用符号
--group unit,controllers
Run Code Online (Sandbox Code Playgroud)
运行所有测试unit
,然后是所有(或剩下 - 我不太记得)测试controllers
- 在大型项目中,这可能导致长时间运行.
PSR-4 的当前约定是将src
文件夹命名为Vendor\Package
. 然后使用目录结构为其中的任何文件命名。所以
src/Model/MyModel.php
Run Code Online (Sandbox Code Playgroud)
用途
namespace Vendor\Package\Model;
class MyModel {...}
Run Code Online (Sandbox Code Playgroud)
这对于文件夹中的任何文件夹都是直观的src
,但是与src
?相同级别的文件夹的约定是什么?例如tests
,public
,config
等等等等
(我知道有些人会评论命名空间测试的要点,但是想象一个包含许多单独包的大型项目,每个包都有自己的测试,但具有可以在包之间重用的通用测试。)
我已经看到了使用的建议,Vendor\Package\Tests
但对我来说,按照src
惯例,这给人的印象是里面有一个Tests
文件夹src
,但事实并非如此。虽然如果有是一个Tests
内部文件夹src
,然后这些命名空间中会发生冲突?
我已经习惯make:auth
创建登录脚手架,它在基本应用程序中运行良好.但是我正在创建一个包,所以我已经将文件移动到我的包中各自的位置.
我已将make:auth
应用程序创建的路由命名为
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/home', 'Package\Namespace\HomeController@index');
});
Run Code Online (Sandbox Code Playgroud)
当我评论Route::auth();
一切似乎工作正常.当我继续Route::auth
我得到一个错误
Class Auth\AuthController does not exist
Run Code Online (Sandbox Code Playgroud)
我无法理解问题所在.我对auth()
助手功能了解不多.
我正在尝试scan
与Laravel 一起使用Redis。我可以发出一个返回10个键的请求,但是我希望循环直到所有键都返回。我不确定如何使用laravel进行此操作。目前我有
$test = Redis::scan(0, 'match', '*keypattern*');
Run Code Online (Sandbox Code Playgroud)
我不知道是否有一种“ laravel”方式。
编辑:
我使用作曲家进行导入predis/predis
并与之合作
use Predis\Collection\Iterator;
use Predis;
...
$client = new Predis\Client([
'scheme' => 'tcp',
'host' => 'localhost',
'port' => 6379,
]);
foreach (new Iterator\Keyspace($client, '*keypattern*') as $key) {
$arr[] = $key;
}
Run Code Online (Sandbox Code Playgroud)
但我想知道laravel的方式
编辑:
var_dump的单 Redis::scan
array(2) {
[0]=>
string(4) "23"
[1]=>
array(10) {
[0]=>
string(19) "key17"
[1]=>
string(19) "key72"
[2]=>
string(76) "key11"
[3]=>
string(19) "key73"
[4]=>
string(19) "key63"
[5]=>
string(19) "key87"
[6]=>
string(19) "key70"
[7]=>
string(19) …
Run Code Online (Sandbox Code Playgroud) 我想要Route::group()
使用闭包而不是使用 laravel 语法来使用特定的命名空间。所以代替
Route::group(['namespace' => 'My\Namespace\For\Controllers'), function () {
// TestController found in `My\Namespace\For\Controllers`
Route::resource('resource/url', TestController@test)
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能有类似的东西
Route::group(function () {
// Some logic for using the `My\Namespace\For\Controllers`
// namespace for all routes within this group
// Controller found in `My\Namespace\For\Controllers`
Route::resource('resource/url', Controller@test)
}
Run Code Online (Sandbox Code Playgroud)
我想要这个功能,所以我可以根据传递给路由的参数动态决定控制器命名空间。
我正在访问从已解决的承诺返回的对象的属性。
return new Promise((resolve) => {
// Get result
resolve(result)
}).then(r => console.log(r.id))
Run Code Online (Sandbox Code Playgroud)
Typescript编译代码并且代码可以工作,但是我的IDE抱怨 r.id
[ts]类型“ {}”上不存在属性“ id”。
处理此问题的“ TypeScript”方法是什么?这个问题似乎有相同的问题,但我无法理解给定的解决方案。这个答案是关于使用接口的,但是我不确定如何将其应用于接口的then()
功能。Promise
我有中间件使用重定向来调用控制器,然后控制器显示一个视图.
public function handle($request, Closure $next)
{
redirect()->action('Full\Namespace\To\Controller\ErrorController@fourOhThree');
}
Run Code Online (Sandbox Code Playgroud)
我也有这条路线.当我按照路线时,视图显示正常.当我尝试重定向并使用action
我的控制器的命名空间时,laravel尝试在基础应用程序中找到控制器.我收到错误
Action App\Http\Controllers\Full\Namespace\To\Controller\ErrorController@fourOhThree not defined.
Run Code Online (Sandbox Code Playgroud)
当控制器位于
App\Vendor\Myname\Mypackagename\Controllers\ErrorController@fourOhThree
Run Code Online (Sandbox Code Playgroud)
据我所知,我已正确命名控制器,因为它与此目录中的其他命名空间控制器相匹配.这是我试图通过动作调用的唯一控制器.
ErrorController.php
内 App\Vendor\Myname\Mypackagename\Controllers
namespace Full\Namespace\To\Controller;
use App\Http\Controllers\Controller;
class ErrorController extends Controller
{
public function fourOhThree()
{
return view('...');
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我在如何将命名空间控制器传递给action
方法时做错了.
php ×5
laravel-5 ×4
laravel-5.2 ×4
laravel ×3
composer-php ×1
javascript ×1
jquery ×1
lambda ×1
phpunit ×1
promise ×1
psr-4 ×1
redis ×1
typescript ×1