gpt4 book ai didi

php - 退出前触发函数

转载 作者:可可西里 更新时间:2023-10-31 22:51:19 26 4
gpt4 key购买 nike

我正在使用 DHTMLX Scheduler在前端和后端的 DHTMLX 连接器作为我的 radio 自动化应用程序的一部分。每次用户编辑日历时,都会对如下所示的文件进行 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");

这个文件是我的“垫片”,它将前端连接到后端。我想运行另一个将更改写入我的 crontab 的 PHP 脚本,但它需要在 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可能会提供一个快速的解决方案;但是,您可以通过检查该库的零星进程停止的原因来为自己省去一些 future 的麻烦。

一个好的起点可能是......

  • 您浏览器的 JS console对于 JS 错误
  • 用于 AJAX 错误的 JS 控制台网络选项卡
  • 您服务器的 PHP 错误日志

关于php - 退出前触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com