Installazione del sistema aggiuntivo CMS / progettazione del sistema di attivazione per gestire gli errori

0

Sto creando il mio CMS (solo per divertimento). Sono arrivato al punto di gestire i componenti aggiuntivi (temi e plug-in). Un componente aggiuntivo ha 4 funzioni disponibili (definite dallo sviluppatore aggiuntivo) per il CMS da utilizzare su di esso:

  • install () : creazione di tabelle / opzioni / file / cartelle
  • activate () : ripristino delle variabili, impostazione degli stati attivi, visualizzazione degli elementi
  • deactivate () : blocco delle variabili, impostazione di stati inattivi, elementi nascosti
  • uninstall () : eliminazione di tabelle / opzioni / file / cartelle

Quando, ad esempio, ho bisogno di selezionare un nuovo tema, questo è il processo:

  1. Disattiva il tema corrente
  2. Disinstalla il tema corrente
  3. Installa nuovo tema
  4. Attiva il nuovo tema

Ora, ecco il mio dubbio: poiché l'esecuzione corretta di ognuna di queste funzioni dipende da molte variabili, potrebbe non riuscire e ciò potrebbe portare a un ipotetico ciclo.
Considerare uno scenario in cui l'installazione (o l'attivazione) di un nuovo tema fallirebbe, il CMS tenterebbe quindi di ripristinare tutto allo stato precedente (reinstallare e riattivare il tema precedente), ma cosa succederebbe se fallisse di nuovo? Quindi avremmo un CMS rotto perché non avrà più un tema.

Ho pensato di assumere che ognuna delle 4 funzioni non avrebbe mai fallito (perché i requisiti sono controllati in anticipo) in modo da ottenere uno stato coerente, ma sembra un'utopia, perché un errore silenzioso potrebbe verificarsi in qualsiasi momento (un errore durante l'inserimento del database, forse?), e interromperà comunque il CMS.

Quindi mi stavo chiedendo quale soluzione potrebbe essere la migliore in questo caso? Come posso gestire gli errori per evitare di rimanere bloccato (un plugin non rimovibile per esempio)?

    
posta Xriuk 05.03.2018 - 20:31
fonte

0 risposte

Leggi altre domande sui tag