编译工匠控制台时如何动态加载?

时间:2017-08-03 07:37:42

标签: php laravel dynamic compilation

这是我的代码。

namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
use App\Events\RedisEvent;

class RedisSubscribe extends Command
{

    protected $signature = 'redis:subscribe';

    protected $description = 'Subscribe redis channel for socket communication';

    protected $redisSubClient;

    protected $redisCacheClient;

    public function __construct()
    {
        parent::__construct();
        $this->redisSubClient = Redis::connection('redis_socket_sub');
        $this->redisCacheClient = Redis::connection('redis_cache');
    }

    public function handle()
    {   

        $this->redisSubClient->subscribe(['fromClient'], function($data) {
                    if($this->redisCacheClient->get(config('lunachat.yellow_id').'_socket_mode') == 1) {

                        $par = [
                            '
                            '
                            '
                            '
                            '
                        ];
                        event(new RedisEvent($par));
                    }
                }
            } catch (\Exception $e) {
            }
        });
    }
}

这是eventlistener

class RedisEventListener
{

    public $par;

    public function __construct()
    {
        //
    }

    public function handle(RedisEvent $event)
    {
        $this->par = $event->par;
        $api = new Api();
        if ($api->find($this->par['id'])) {
            $api->apiCallWrite($this->par);
        }   
    }
}

我的问题是,当我运行此程序时,与该事件关联的所有代码将一起加载和运行。

因此,如果我修改相关代码,我必须重新启动程序。

但是,我的服务条件并非如此。

因此,该程序仅编译并执行代码以执行事件,并且后续逻辑需要动态编译和执行。

我想知道这是否可以在Laravel。

0 个答案:

没有答案