
本文共 4032 字,大约阅读时间需要 13 分钟。
������������������������������������������������swoole���������������������������run������������������������������ws������tcp���������������������������������������������������������������������������������������������������������������������������������������������Laravel������������������������������������������������������������������������������������������Class������������������
class a { public $bClassInstance; public function __construct(Class b) { $classInstance = new b(); } public function doSth() { return $this->bClassInstance->xxx(); }}$b = new b();$a = new a($b)$a->doSth();
������Laravel������������������������������������������, ���������������������������������������������������������������������������������������������������������������������
class a { public function doSth(b $b) { return $b->xxx(); }}
���������������������������������������php������������������������������������������������������������������������������namespace������������������������������������������������������������������������������������������������������
reflection = new \ReflectionClass($namespace); } catch (Exception $e) { echo $namespace; } } public function builderController($fn, $server, $frame, $userMessage) { //���route������������control������ $this->reflection->getMethod($fn)->invoke($this->autoBuilder(), $server, $frame, $userMessage); } public function builderTask($fn, $server, $userMessage) { $this->reflection->getMethod($fn)->invoke($this->autoBuilder(), $server, $userMessage); } public function autoBuilder() { #��������������������� return $this->batchInstantiation($this->getPrototypeController($this->reflection)#������������ ); } protected final function getPrototypeController(\ReflectionClass $object) { $prototype = false; //��������������������������������������� foreach ($object->getConstructor()->getParameters() as $parameter) { $prototype[] = $parameter->getClass()->name; } return $prototype ?: []; } protected final function batchInstantiation(array $prototypeArr) { foreach ($prototypeArr as $item) { $container = new container($item); $insArr[] = $container->autoBuilder();//������������������ } return empty($prototypeArr) ? $this->reflection->newInstance() : $this->reflection->newInstanceArgs($insArr); }}
���������������������������������������������������������������������������������������������composer.json������������������������
{ "require": { }, "autoload": { "psr-4": { "App\\": "App/" } }}
������������������������������������������������������������������������������������������������������������http������������������������������������������swoole������������������������������������������route������������������������������������
class Route{ public $websocketServer; public $model; public $cache; public function __construct() { $this->websocketServer = new \swoole_websocket_server("0.0.0.0", "8002"); } public function start_ws() { // ������������������swoole��������� ... // ������������������swoole $this->websocketServer->start(); } public function ws_onMessage(\swoole_websocket_server $server, $frame) { $userMessage = $this->filter_arr(json_decode($frame->data, true)); if (!$userMessage) { return false; } if (!$userMessage['type'] || !$userMessage['action']) { return $this->call_shell("Type or action not found! "); } //������������������������������������ $App = new Container('\App\Controller\\'.$userMessage['type']); return $App->builderController($userMessage['action'], $server, $frame,$userMessage); } }
���������������������������������������������������������������������
start_ws();
发表评论
最新留言
关于作者
