Attualmente sto sviluppando la v2.0 dei miei cms personali. Tuttavia, sono bloccato. Sento strongmente che la mia vecchia soluzione per "compiti" non è molto dinamica e deve essere rivisitata. Attualmente sto osservando l'intero concetto di come aggiungere dinamicamente compiti ed eseguirli.
Che cosa intendo per sistema di attività
Come sempre nel software cms, ci sono molti contenuti, come immagini, file dinamici, voci di database, ecc. Ho creato il mio proprio sistema di task alias. The Parser (suona male, vero?) È composto da due file, una parser-classes e altri trigger con $parser = new ParserClasses();
(spero tu capisca cosa intendo.) Alcune delle caratteristiche del parser:
- Prima spegni il sito (dopo che il parser è terminato, riaccendilo)
- Controlla i file attivi (i file che non hanno la voce principale di mysql, saranno cancellati)
- Cancella la vecchia cache
- Genera una nuova cache statica
- Gestisce le lingue e la cache correlata alla traduzione
- e altre attività correlate alla gestione e alla manutenzione di cms
Perché voglio renderlo più automatico
Fondamentalmente tutti i plugin e alcuni temi (componenti aggiuntivi in generale) utilizzano questo sistema di attività. Ma il problema è che non è molto dinamico, perché tutte le funzioni si trovano in una grande classe. Ciò significa che il componente aggiuntivo non può essere installato senza aprire l'editor php.
Come stavo progettando di farlo
Per prima cosa creerei il mio linguaggio delle attività , con funzioni preimpostate per gestire file, cache, ecc. (Esempio molto ampio: GenerateFreshCache('pages')
). Ora, la memorizzazione è il problema .. Le mie idee sono:
- Per creare una tabella delle attività nel database mysql. Quindi aggiungi le attività lì, con la mia lingua delle attività . Successivamente
while()
li dal database eeval()
. (Questo è un buon modo, perché posso aggiungere orari programmati e funzioni simili, per lavori CRON o anche classificare le attività.) - Aggiungi i file .php in una cartella, dove vengono caricati. Probabilmente useranno lo stesso linguaggio delle attività , ma non è necessario essere
eval()
'ed. (Ho paura che ciò rallenterebbe il parser, perché vengono inclusi così tanti file.)
Tuttavia, non sono sicuro di queste idee e spero che qualcuno abbia già trovato questa funzionalità e possa darmi dei suggerimenti. Tutte le idee e concetti pazzi sono benvenuti, grazie in anticipo.
Conclusione
grazie a tutti quelli che hanno risposto. Ho scelto la risposta, che mi ha aiutato di più e non "ohh, troppo lavoro, uso framework". Il mio core dei sistemi operativi è completo e funzionante. Ci sono voluti 2-3 giorni e attualmente ~ 600 linee di codice e due classi (core esterno e interno.) Alla fine ho finito con due tabelle mysql, una con compiti (task db) e un'altra con combo (più attività combinate insieme per una più facile esecuzione .) Inoltre, ha aggiunto alcune funzionalità in modo che sarebbe sicuro di correre via ajax (non posso davvero parlarne, top secret ^^). Potrebbero esserci troppi cicli, gestendo l'analisi delle attività, ma questo rende l'aggiunta di nuovi compiti molto semplice .. Basta aggiungerla al DB delle attività e aggiungere l'attività a cron-list-automatic-run-list o eseguirla direttamente via il pannello di amministrazione.