MicroJuanan Cuaderno de micronotas de Juanan Ruiz

29Nov/110

PHP: autoload no funciona y obtengo Fatal error: Class X not found

La función autoload es una de esas maravillas que te hacen la vida más fácil en PHP. Esta función es llamada cuando intentamos instanciar un objeto de una clases, en su interior pondremos el código necesario para que el programa compruebe si existe el archivo donde está definida la clase y luego la cargue con "include" o "require". El código podría ser así:


function __autoload($class_name)
{
if (file_exists('../class/'.$class_name.'.php'))
{
require_once('../class/'.$class_name.'.php');
}
}

Pero he aquí que hace poco he comenzado a usar una nueva versión del lenguaje de plantillas Smarty y como siempre agrego la librería en mi controlador principal para que se cargue cada vez que alguien accede a la aplicación. Pues bien en esta nueva versión se hace también una llamada a __autoload que por lo visto entra en conflicto con la mia y me impide cargar las clases automáticamente. Así que bicheando por la web he encontrado una solución.

Antes de llamar a __autoload debes poner la siguiente línea:


spl_autoload_register('__autoload');

Como por arte de magia mis aplicaciones vuelven a funcionar sin problemas, pero vaya tela la que me han dado. Para más información puedes mirar la entrada correspondiente en el manual de PHP.

24Sep/091

Smarty: Cómo averiguar el tamaño de un array

:( Esta entrada quizás sea un poco friki para la mayoría, pero es que en esta libreta de apuntes tiene que haber de todo, perdonad las molestias ):

Para averiguar el tamaño de un array desde smarty sólo tienes que teclear:

{$mi_array|@count}

Esto utiliza la función count de php desde smarty.

Si necesitas hacer cálculos con ese valor tendrás que hacer algo como esto:


{assign var=mi_array_count value=$mi_array|@count}

via Smarty :: View topic - How to find the length of an array?.

Tagged as: , , 1 Comment