php – 退出之前的触发功能

前端之家收集整理的这篇文章主要介绍了php – 退出之前的触发功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在前端使用 DHTMLX Scheduler和后端的DHTMLX Connector作为我的无线电自动化应用程序的一部分.每次用户编辑日历时,都会对一个如下所示的文件进行AJAX调用
require_once("dhtmlxScheduler_v4/connector/scheduler_connector.PHP");
require_once('QDRAconf.PHP');

$res = MysqL_connect($QDRAconf['MysqLHost'],$QDRAconf['MysqLUser'],$QDRAconf['MysqLPass']);
MysqL_select_db($QDRAconf['MysqLDb']);

// init the schedulerconnector
$conn = new SchedulerConnector($res);

// render the table
$conn->render_table("events","id","start_date,end_date,text");

这个文件是我的“垫片”,挂钩到前端.我想要运行另一个PHP脚本将更改写入我的crontab,但是需要在DHTMLX库更新数据库之后进行.麻烦的是,DHTMLX库会自动退出,只要它认为它完成:有时它可能不会超过第一个require_once(‘…’)行,所以我不能只是把require_once(‘cronwriter.PHP’);在脚本的最后一行.

我的解决方案是创建一个具有析构函数的类,通过最新的更改更新crontab.由于PHP手动states that析构函数仍然会在exit()或die()函数调用时运行,所以我添加了一个带有析构函数的虚拟类,它运行cronwriter.PHP脚本:(我把它添加文件的开头)

class ExitCatcher
{
    function __destruct()
    {
        require_once('cronwriter.PHP');
    }
}
//init the class
$ExitCatcher = new ExitCatcher;

由于某种原因,它不起作用.

register_shutdown_function可以提供一个快速解决方案;但是,您可以通过检查图书馆零星过程停止的原因来节省自己一些未来的麻烦.

一个好的开始的地方可能是…

>您的浏览器的JS console for JS错误>您的JS控制台的AJAX错误的网络标签>您的服务器错误日志中的PHP错误

猜你在找的PHP相关文章