2014-09-12 24 views
10

Używam DHTMLX Scheduler na przednim końcu i złącze DHTMLX na zapleczu jako część mojej aplikacji do automatyzacji radiowej. Za każdym razem, gdy użytkownik edytuje kalendarza, wywołanie AJAX jest do pliku, który wygląda tak:Funkcja wyzwalania tuż przed wyjściem

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"); 

Ten plik jest mój „podkładkę”, że haki do góry frontem do tylnego końca. Chcę uruchomić inny skrypt PHP, który zapisuje zmiany w moim pliku crontab, ale musi się zdarzyć po biblioteka DHTMLX zaktualizowała bazę danych. Problem polega na tym, że biblioteka DHTMLX zostanie automatycznie zamknięta, gdy tylko uzna to za gotowe: czasami może minąć pierwszą linię require_once('...'), więc nie mogę po prostu wstawić require_once('cronwriter.php'); w ostatniej linii skryptu.

Moim rozwiązaniem było stworzenie klasy z destruktorem, który aktualizuje crontab z najnowszymi zmianami. Ponieważ instrukcja php w języku angielskim nadal będzie działać, jeśli wywoływana jest funkcja exit() lub die(), dodałem klasę fikcyjną z destruktorem, który uruchamia skrypt cronwriter.php: (dodałem to na początku pliku.)

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

Z jakiegoś powodu nie działa.

Odpowiedz

2

register_shutdown_function może zaoferować szybkie rozwiązanie; ale możesz uratować się przed przyszłymi problemami, sprawdzając przyczynę sporadycznych procesów w tej bibliotece.

Dobrym miejscem do rozpoczęcia może być ...

  • JS console dla JS błędów w Twojej przeglądarce
  • Twoja karta sieciowa JS konsoli za AJAX błędów
  • dzienniki błędów swojego serwera dla błędów PHP
Powiązane problemy