Il pro principale è una maggiore sicurezza, beh, questo è possibile se configuri correttamente .htaccess
.
Reindirizzando tutto al file di indice pubblico e negando l'accesso ai file delle fonti delle applicazioni, estrai i diritti di accesso di file e directory ad apache, il che fa un buon lavoro.
Ora quei file dell'applicazione non solo contengono la tua logica aziendale ma possono anche contenere informazioni sensibili, come credenziali del database, chiavi API del server, .. Informazioni che non vuoi che nessuno veda.
Quando apache si occupa di negare l'accesso a tali directory / file e di riscrivere l'URI, tu stesso puoi descrivere elegantemente cosa e come si accede.
Un approccio manuale risulta molto complicato e potresti facilmente commettere un errore e avere un file, che volevi essere inaccessibile, accessibile.
Il problema è che ogni richiesta che colpisce il server ora deve passare attraverso questo file di indice pubblico. E quando crei una directory come scripts
in cui vuoi posizionare il codice da eseguire passando a un URI nel tuo browser, di solito non funziona, perché il framework non si rende conto che vuoi effettivamente accedere a un file .php (sarà nemmeno ti lascia) e pensa che stai provando ad accedere a un controller.
Ovviamente, questo viene aggirato eseguendo lo script direttamente da diciamo SSH, quindi non passa attraverso Apache. Ma anche in questo caso è necessario pensare al progetto e probabilmente non inserire la logica di bootstrap (inizializzazione dell'ambiente, ...) nel file di indice pubblico - questo è ciò che per fortuna fanno molti framework.
Alla fine, se non stai codificando per scopi educativi, non ti consiglio di tirar fuori la tua soluzione. Esistono molti framework che utilizzano la methology del file di indice pubblico singolo e sono piuttosto maturi e si sono dimostrati efficaci.
Lungo i framework che FMJaguar ha già menzionato, ti consiglio vivamente il PhalconPHP framework.