2012-06-25 11 views
5

Chcę wiedzieć, gdzie jest najlepsze miejsce, aby umieścić ini_set (funkcji), bo myślę, że gdy funkcja ini_set jest wewnątrz metody takie jak to:Gdzie można wywołać funkcje ini_set() w klasie?

private function archiveBackup() { 
    ini_set('memory_limit', '128M'); 
    ini_set('max_execution_time', 0); 
    ... 
} 

Funkcja ini_set nie działa ?!

Mój skrypt działa tak: kwerenda ajax jQuery -> plik ajax.php (wykonaj instancję klasy i wywołaj metodę) -> wywołaj metodę klasy.

Gdzie jest najlepsze miejsce? W pliku ajax.php lub na początku klasy lub wewnątrz metod?

+0

Uwaga: pamiętaj, że te wartości ini są teraz ustawione dla uruchomienia tego skryptu. Aby powrócić w tym samym wykonaniu skryptu, musisz zrobić to ręcznie. – Sammaye

Odpowiedz

5

Ogólnie rzecz biorąc, najlepsze miejsce do wykonywania połączeń ini_set jest tuż przy (lub w pobliżu) początku skryptu. W ten sposób jest prawie taki sam, jak gdyby zostały one zdefiniowane w pliku php.ini w pierwszej kolejności.

+0

Tak, ale co, jeśli udostępniony hosting nie akceptuje mojego pliku php.ini? –

+0

To nadal będzie działać. Sinceit jest zdefiniowany w pliku PHP. Kolinkom wystarczy to jak zdefiniowanie go w php.ini w sposób, w jaki działa – Sammaye

+0

Jeśli Twój wspólny hosting nie akceptuje modyfikacji php.ini upewnij się, że możesz wykonywać ini_set. Być może naruszasz warunki i postanowienia, używając tego polecenia. – Sammaye

1

Zauważyłem, że umieściłeś ini_set na początku głównej funkcji, która najprawdopodobniej jest poprawna.

Więc:

Funkcja ini_set nie działa ?!

Możliwe, ponieważ twój udostępniony dostawca hostingu ma uprawnienia zablokowane w jakiś sposób.

Jak mówi Kolink, prawdopodobnie dostawca usług hostingowych korzysta z Ciebie na disable_functions.

0

Może być traktowany jako osobiste preferencje, ale ja osobiście unikam stosowania jakichkolwiek dyrektyw konfiguracyjnych PHP poza moimi plikami konfiguracyjnymi aplikacji. Innymi słowy, jeśli pewna klasa mojego projektu wymaga konkretnej konfiguracji poziomu uruchamiania PHP, zauważam to w opisie klasy, ale nadal stosuję samą konfigurację w moich głównych plikach konfiguracyjnych.

+3

Chociaż ogólnie zgadzam się z Twoimi preferencjami, istnieje kilka miejsc (zazwyczaj skrypty crona), w których zastępuję niektóre ustawienia konfiguracji - zwykle limit pamięci. –

+0

Nigdy nie miałem doświadczenia z cronem, co wymagałoby ode mnie zrobienia czegoś takiego, więc będę musiał tylko wziąć na to twoje słowo :) – brezanac