feat(plugins): ganchos de ciclo de vida y checkpoints boot_plugins y post_variables
Fase 0 del instalador de plugins (docs/plugins/fase0-instalador-diseno.md del repo de Forge). Un plugin puede llevar install.php, uninstall.php, enable.php, disable.php y status.php; los ejecuta runPluginLifecycle() dentro de la web por action_ws=pluginLifecycle, sea Forge o el CMS legacy quien instale. showInstall() reutiliza el mismo nucleo (installPluginArtifacts) en vez de duplicar install.sql/schemaPresets. Checkpoints nuevos, sin efecto hasta que un plugin los declare: - boot_plugins: en init.php, con la BD ya conectada. - post_variables: tras cada require de lib/variables.php (slug.php, sesion.php, lib/recursos.php), una vez por peticion. Un plugin llega DESPUES del bloque de cache de variables.php y puede pisarlo. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HPL66q9F33YZxbLPUT7KW8
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
462cba0505
commit
273c3dd781
@@ -27,6 +27,14 @@ displaySocketErrors();
|
||||
if ($SETTINGS['isInstalled']) {
|
||||
connectToMySQL();
|
||||
}
|
||||
// Checkpoint `boot_plugins` (2026-09-12): el CMS esta cargado y la BD conectada.
|
||||
// Los plugins que lo declaren en [checkPoints] se inicializan aqui en cada
|
||||
// peticion (instalar/reconciliar lo suyo, autodiagnostico). Ningun plugin del
|
||||
// catalogo lo declaraba al crearlo: no cambia nada hasta que uno lo use.
|
||||
if (function_exists('addPlugins')) {
|
||||
$bootPluginsVar = array();
|
||||
addPlugins('boot_plugins', $bootPluginsVar);
|
||||
}
|
||||
function enableErrorReporting() {
|
||||
if (!defined('E_STRICT')) { define('E_STRICT', 2048); } // define E_STRICT for PHP < 5
|
||||
error_reporting(E_ALL | E_STRICT); // display all errors
|
||||
|
||||
Reference in New Issue
Block a user