0
我已經知道我不能把它作爲一個受保護的變量存儲在命令類本身上(我試過了,那不起作用)。有沒有一種方法可以在命令的執行之間存儲數據,而無需將該信息存儲在數據庫中或寫入文件?我可以在執行Symfony2命令之間存儲一個值嗎?
基本上,我每隔2分鐘通過cron運行一個命令,但我想設置一個標誌,每次運行命令時都會更改。
以下情況不起作用,因爲每次運行命令時,受保護的變量都被初始化爲snc_redis.dashboard1
。
protected $redisDb = 'snc_redis.dashboard1';
protected function execute(InputInterface $input, OutputInterface $output)
{
if ($this->redisDb == 'snc_redis.dashboard1') {
$this->redisDb = 'snc_redis.dashboard2';
}
else {
$this->redisDb = 'snc_redis.dashboard1';
}
}
也許你可以將它存儲在某種內存緩存中。你有沒有聽說過Memcache? –
是的,我以前使用過memcache,但不是直接使用。我完全可以將這個值存儲在redis數據庫的某個地方,我只是想知道是否在symfony中內置了一個方法來在命令執行之間持久化屬性? –
每個Php執行都有一個完全清晰的上下文,因此除非將其保存到磁盤或內存a,否則每次執行時生成的信息都會消失。 – Carlos