2012-06-25 15 views
5

Quiero saber dónde está el mejor lugar para poner el ini_set() funciona, porque creo que cuando la función ini_set está dentro del método como este:¿Dónde llamar a las funciones ini_set() en la clase?

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

La función ini_set no funciona ?!

Mi script funciona así: consulta jQuery ajax -> archivo ajax.php (crea una instancia de la clase y llama a algún método) -> llama al método de la clase.

¿Dónde está el mejor lugar? ¿En el archivo ajax.php o al comienzo de la clase o dentro de los métodos?

+0

Como nota al margen, recuerde que esos valores ini están configurados para la ejecución de esa secuencia de comandos ahora. Para revertir en la misma ejecución del script, debe hacerlo manualmente. – Sammaye

Respuesta

5

En general, el mejor lugar para poner ini_set llamadas es justo en (o cerca) del inicio del script. De esta forma, es prácticamente lo mismo que si se hubieran definido en el archivo php.ini en primer lugar.

+0

Sí, pero ¿y si el alojamiento compartido no acepta mi archivo php.ini? –

+0

Esto seguirá funcionando. Sinceit está definido en el archivo PHP. A Kolink simplemente le gusta definirlo en php.ini en la forma en que funciona – Sammaye

+0

Si tu alojamiento compartido no acepta los mods de php.ini, asegúrate de que puedes hacer ini_set. Usted podría estar incumpliendo sus términos y condiciones al usar este comando. – Sammaye

1

Me he dado cuenta de que ha colocado ini_set al inicio de su función principal que probablemente sea la correcta.

Así:

La función ini_set no funciona ?!

Podría ser porque su proveedor de alojamiento compartido tiene permiso para bloquearlo de alguna manera.

Como dice Kolink, es probable que el proveedor de alojamiento web esté usando disable_functions contigo.

0

Puede considerarse como una preferencia personal, pero personalmente evito usar cualquier tipo de directiva de configuración de PHP fuera de los archivos de configuración de mi aplicación. En otras palabras, si una determinada clase de mi proyecto requiere una configuración de nivel de ejecución específica de PHP, noto ese requisito en la descripción de la clase, pero aún así aplicaré la configuración en mis archivos de configuración principales.

+3

Si bien estoy de acuerdo con su preferencia en general, hay un par de lugares (típicamente scripts cron) donde anulo algunos ajustes de configuración, generalmente el límite de memoria. –

+0

Nunca tuve una experiencia con cron que requiriera que hiciera algo así, así que tendré que decirles lo que quiero decir :) – brezanac

Cuestiones relacionadas