Problema con unlink() en Smarty en core.write_file.php:44

Algunas veces Smarty (como cuando la usamos sobre sistemas Microsoft), a la hora de crear archivos compilados, da un error en la línea 44 de \libs\internals\core.write_file.php relacionado con la función unlink() de php.

Si vemos el código en ese archivo notamos que en esa línea tenemos lo siguiente:

@unlink($params['filename']);

Esta línea lo que hace es borrar un archivo pasado con la variable $params['filename'], pero no comprueba si éste existe antes de hacerlo y, a pesar de contar con el operador @ cuya finalidad es no imprimir posibles errores, imprime un warning cuando se da esta situación.

Si añadimos esa pequeña comprobación dejará de dar ese error ya que no borrará el archivo a menos que éste exista. Lo hacemos sustituyendo la línea de código anterior por esta otra:

if(file_exists($params['filename'])){ @unlink($params['filename']); }

Sobre Asier

Arquitecto web enganchado al desarrollo, estudio y planteamiento de proyectos en internet. Trabajo en Blackslot, empresa que fundé en el 2009. Me encanta el cine, el café, el sexo, la cultura geek, la cultura oriental y la música electrónica.
Artículo publicado en Desarrollo Web, PHP. Enlace a esta entrada..

Una respuesta a Problema con unlink() en Smarty en core.write_file.php:44

  1. Era eso!!!, por favor, si estube puteando con eso. Gracias.
    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos, están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.