今天,我在Artisan Command的生命周期中遇到了一些奇怪的事情。
cronjobs:MyCommand
的工匠命令。MyCommand
延伸BaseCommand
。 BaseCommand
是我用来基准命令行操作的东西。
它由构造函数和析构函数组成。构造函数跟踪
操作的开始时间,析构函数记录当前时间减去
日志表中的开始时间。
令我惊讶的是,我发现__destruct()
上的BaseCommand
函数是。{
每次我通过工匠发出cronjobs:MyCommand
时,总共召集了5次。
这是正常行为,如果是这样,我应该如何处理日志记录呢?
答案 0 :(得分:1)
使用Symfony 2的命令类进一步测试表明,这是Symfony 2的原生问题,而不是laravel 4。
在这个时间点,以任何有用的方式在artisan命令的类(或其父级)中使用构造函数/析构函数似乎是不可能的。
任何输入仍然受到高度赞赏!
答案 1 :(得分:0)
问题似乎仍未修复。我还使用__destruct方法创建了一个基本命令,该方法多次执行gettigng。
我在basecommand中创建了一个shutdown方法,并在mycommand结束时调用。