Skip to content

Instantly share code, notes, and snippets.

@aprchen
Created April 27, 2017 08:42
Show Gist options
  • Save aprchen/362bdfa685e2ce50b051ec85879cf9bb to your computer and use it in GitHub Desktop.
Save aprchen/362bdfa685e2ce50b051ec85879cf9bb to your computer and use it in GitHub Desktop.
出错后与python 通信
<?php
namespace Sl\Plugins;
use Phalcon\Events\Event;
use Phalcon\Exception;
use Phalcon\Mvc\User\Plugin;
use Phalcon\Dispatcher;
use Phalcon\Mvc\Dispatcher\Exception as DispatcherException;
use Phalcon\Mvc\Dispatcher as MvcDispatcher;
use Sl\Library\SocketHelper;
/**
* 未找到插件
*
*/
class NotFoundMiddleware extends Plugin
{
/**
*
*
* @param Event $event
* @param MvcDispatcher $dispatcher
* @param \Exception $exception
* @return boolean
*/
public function beforeException(Event $event, MvcDispatcher $dispatcher, \Exception $exception)
{
if ($exception instanceof DispatcherException) {
switch ($exception->getCode()) {
case Dispatcher::EXCEPTION_HANDLER_NOT_FOUND:
case Dispatcher::EXCEPTION_ACTION_NOT_FOUND:
$dispatcher->forward(
[
'controller' => 'errors',
'action' => 'show404'
]
);
return false;
}
}
if(ENV == 'DEV'){
echo $exception->getMessage() . '<br>';
echo '<pre>' . $exception->getTraceAsString() . '</pre>';
}else{
$log = \Log::logger();
try{
$socket = new SocketHelper(BOOT_HOST,BOOT_PORT);
$content = "## 访问时间: " . date('Y-m-d H:i:s') . PHP_EOL . "## 访问来源: " . $_SERVER["REMOTE_ADDR"] . PHP_EOL . "## 请求字段: " . $_SERVER['QUERY_STRING'] . PHP_EOL . "## 错误信息:".$exception->getMessage() ;
$socket->send_data($content); if($socket->read_data() !='ok'){
//SMS balabala 机器人挂啦,信息保存到未发送日志,下次发送时检查是否存在未发送日志,存在发送成功后删除
}
$socket->close_socket();
$log->error($exception->getMessage() . PHP_EOL . $exception->getTraceAsString());
$log->close();
}catch (Exception $e){
$log->error("微信机器人连接失败" . PHP_EOL . $exception->getMessage() . PHP_EOL . $exception->getTraceAsString());
$log->close();
}
}
$dispatcher->forward(
[
'controller' => 'errors',
'action' => 'show500'
]
);
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment