Entradas

Mostrando entradas de julio, 2025

Autoloader

1. Sistema de Carga Automática (Autoloading) PSR-4 Compatible : Soporte para estructura de directorios según el estándar PSR-4. Búsqueda Recursiva : Fallback recursivo en directorios si no se encuentra la clase en la estructura PSR-4. On-Demand : Carga clases solo cuando son requeridas (no carga todo al inicio). 2. Sistema de Caché Avanzado Almacenamiento por FQCN : Usa el  Fully Qualified Class Name  como clave en el caché. Persistencia en Disco : Guarda el caché en un archivo ( autoloader_cache.dat ) entre ejecuciones. Auto-Limpieza : Elimina entradas inválidas si el archivo de clase no existe. Regeneración Manual : Método  rebuildClassmap()  para precargar todas las clases. 3. Manejo de Rutas Múltiples Paths : Soporta múltiples directorios de búsqueda con  addPath() . Rutas Reales : Usa  realpath()  para evitar problemas con rutas relativas/simbólicas. 4. Diagnóstico y Depuración Logs Detallados : Mensajes de depuración con timestamp (activables con...

Gramatica

 Template   ::= (Text | Interpolation | Tag | Comment)* Text       ::= [^{]+  ; Cualquier cosa que no empiece con '{' Interpolation ::= '{{' Expr '}}' Expr       ::= [^}]+  ; Variable o expresión dinámica Tag        ::= '{' Modifier? TagName Attrs* ('/}' | '}') Content? ('{/' TagName '}') Comment    ::= '{-' .*? '-}' Modifier   ::= '~' | '#' | '@' | '$' TagName    ::= [\w_][\w0-9_]*  ; Ejemplos: "Card", "cs", "Block" Attrs      ::= AttrKey '=' AttrValue               | '[' AttrKey ']'               | AttrKey  ; Booleano implícito AttrKey    ::= [\w_][\w0-9_]*  ; p1, user.name, etc. AttrValue  ::= '"' ([^"\r\n] | '\\"')* '"'              | "'" ([^'\r\n] | "\\'")* "'"              | '...