我正在开发一个Illuminate\Console\Command.使用php artisan通过cli运行.此Command类正在使用其他类.我很欣赏Command-> info(),Command-> error(),方法......我怎样才能在依赖中使用它们?
到现在为止,我将其作为参数传递给其他类$ this
例如
class MyClass extends Command {
....
$g = new MyOtherClass($this, $param...);
$g->find();
....
}
class MyOtherClass {
$command;
....
public function __construct($command){
$this->command=$command;
}
public function find(){
if($error)
$this->command->error($error);
}
....
}
Run Code Online (Sandbox Code Playgroud)
我希望方法可以静态访问,如:Command :: error("some error");
但也许这不是预期的用途?
我正在尝试制作以下拉达克(docker + laravel):https : //github.com/LaraDock/laradock说明
我安装了docker +克隆的laradock.git laradock文件夹位于/ myHD /。
我编辑了laradock / docker-compose.xml
### Laravel Application Code Container ######################
volumes_source:
image: tianon/true
volumes:
- ../project01/:/var/www/laravel
Run Code Online (Sandbox Code Playgroud)
之后,我不确定这是在编辑docker-file之后如何正确重新加载的方法,我这样做了:
docker-compose up -d nginx mysql
Run Code Online (Sandbox Code Playgroud)
现在,由于我没有找到nginx错误404:如何调试问题?
附加信息:
我通过bash进入了机器:
docker-compose exec --user=laradock workspace bash
Run Code Online (Sandbox Code Playgroud)
但我找不到
/etc/nginx/... path (nginx folder doesn't exists !?!?)
Run Code Online (Sandbox Code Playgroud) 我通过请求Json对象获得。我清楚地解析了该对象,以检查它是否适合目标模型。
而不是按属性分配属性。有没有一种快速方法用传入的对象填充模型?
在laravel中,如果我想将参数传递给路由文件中的控制器
Route::get('user/sk/{id}' , 'UsersController@findsk');
Run Code Online (Sandbox Code Playgroud)
如果我想传递默认参数:
Route::get('user/{name?}', function ($name = 'John') {
// how do I invoke my controller here?
return $name;
});
Run Code Online (Sandbox Code Playgroud)
我如何合并这两件事?有捷径吗?
Route::get('user/sk/{id}' , 'UsersController@findsk'
// can I add an array of default parameters here?
);
Run Code Online (Sandbox Code Playgroud) 最近,我在两个不同的复制服务器上更改了我的原始遥控器。
现在我在服务器上遇到了这种情况,一切正常:
$git branch -a
* master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
在另一台服务器上我有这个
$git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
没什么大不了的,因为一切都应该有效,但是为了清洁起见,我希望有相同的情况。
所以我试过:
git branch -d -r origin/HEAD
Run Code Online (Sandbox Code Playgroud)
答案是:
Deleted remote branch origin/HEAD (was 542d392).
Run Code Online (Sandbox Code Playgroud)
但后来我有:
$git branch -a
* master
remotes/origin/HEAD -> origin/master
Run Code Online (Sandbox Code Playgroud)
我也尝试修剪:
$git pull -p origin master
Run Code Online (Sandbox Code Playgroud)
但还是一样......没有机会像另一个srvr一样把它清理干净。
任何提示?
非常感谢
编辑
回答评论“git update-ref -d refs/remotes/origin/HEAD 之后发生了什么”
koala@server:~/www$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
koala@server:~/www$ git update-ref -d refs/remotes/origin/HEAD
koala@server:~/www$ git branch -a
* master
remotes/origin/HEAD -> origin/master …Run Code Online (Sandbox Code Playgroud) 从文档中我看到:
echo $dt->toDateTimeString(); // 1975-12-25 14:15:16
Run Code Online (Sandbox Code Playgroud)
但实际上,如果我转储我的执行,我会得到:
$now = Carbon::now()->toDayDateTimeString();
dump($now); //Mon, Oct 2, 2017 12:49 PM
Run Code Online (Sandbox Code Playgroud)
我需要 :
$now = Carbon::now()->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
为了得到 :
dump($now); //2017-10-02 12:49:06
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
我的调度程序应用程序运行到 Docker 容器中。
Laravel 调度器由主管管理并执行到容器中(我通过遵循http://veithen.github.io/2015/01/08/supervisord-redirecting-stdout.html管理输出重定向):
[supervisord]
nodaemon = true
loglevel = info
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes = 0
umask = 022
pidfile = /tmp/supervisord.pid,
logfile = /tmp/supervisord.log
[program:scheduler]
directory = /var/www
command = sh -c 'php artisan schedule:run && sleep 60'
autorestart = true
redirect_stderr = true
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes = 0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
Run Code Online (Sandbox Code Playgroud)
调整我的 Kernel.php 代码以将输出附加到 stdout_logfile:
$fileCronLog = '/dev/stdout';
$schedule->command('test')->everyMinute()->appendOutputTo($fileCronLog);
Run Code Online (Sandbox Code Playgroud)
test 命令只是将字符串转储到 STDOUT。
如果我将 $fileCronLog …
是否可以避免进一步推送 GitHub 上的开放拉取请求。
我最近遇到一个问题:
避免这种不良行为的最佳做法是什么?
谢谢
我想了解是否有用于在无服务器中定义可选路径参数的快速语法(部署在 AWS lambda 上)。
这是我的功能
职能:
MyFunc:
handler: handler.myFunc
events:
- http:
path: /getdata/{my_id}
method: get
request:
parameters:
paths:
my_id: true
Run Code Online (Sandbox Code Playgroud)
我在互联网上发现了一个定义可选参数的技巧,例如:
path: /getdata/{?my_id}
Run Code Online (Sandbox Code Playgroud)
但它不适用于无服务器。我在部署时恢复了这个错误:
Resource's path part only allow a-zA-Z0-9._- and curly braces at the beginning and the end.
Run Code Online (Sandbox Code Playgroud)
我也想知道是否改变:
my_id: false
Run Code Online (Sandbox Code Playgroud)
会是我的情况(但事实并非如此)
那么让 my_id 可选的无服务器方式是什么,所以两个 http 调用:
http://.../getdata
http://.../getdata/12345
Run Code Online (Sandbox Code Playgroud)
将由 MyFunc 管理?
希望有一个更清晰的解决方案,因为需要创建两个不同的端点/func/lambda
谢谢
假设我有这样的东西:
window.dayNames = function () {
let names = [];
for (let i = 0; i < 7; i++) {
names.push(moment().day(i).format('dddd'));
}
return names;
}
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的简写方式可以用 js 来实现?例如我正在查看 lodash lib _.fill
我想知道是否存在类似的东西:
_.fill(0,7, (i) => {return moment().day(i).format('dddd');});
Run Code Online (Sandbox Code Playgroud)