Czy można dowiedzieć się (programowo), czy w bieżącym procesie PHP zabraknie pamięci?
Jakieś tło:
Jestem autorem Zbiorcze usuwanie wtyczki WordPress, który pozwala użytkownikom zbiorczo usuwać posty, użytkowników itp.
Jedną z powszechnych skarg, które otrzymuję od moich użytkowników wtyczek, jest to, że dostają pustą stronę podczas próby usunięcia dużej liczby postów. Dzieje się tak, ponieważ w PHP brakuje pamięci.
Jeśli dowiem się, że procesowi PHP kończy się pamięć, mogę spróbować usunąć partie lub przynajmniej ostrzec użytkownika, zamiast po prostu rzucać pustą stronę.
Odpowiedzi:
3 dla odpowiedzi № 1Po kilku dalszych badaniach znalazłem rozwiązanie. Rozwiązaniem jest użyć register_shutdown_function
Wadą jest to, że funkcja ta zostanie wykonana po PHP zabrakło pamięci i nie przed (co nadal jest dla mnie w porządku, ponieważ mogę po prostu poinformować o tym użytkowników)