Condividi!

Per rispondere a questa domanda è sufficiente dare un occhiata alla primissima parte del file app/Mage.php, prima che la classe stessa (Mage) venga definita.

$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
$paths[] = BP . DS . 'lib';

$appPath = implode(PS, $paths);
set_include_path($appPath . PS . Mage::registry('original_include_path'));

L’estratto di codice sopra riportato identifica il modo in cui il framwork interagisce con i codepools local, community, core. I loro percorsi, infatti, vengono singolarmente aggiunti ad un array, il quale verrà poi imploso sottoforma di stringa e passato attraverso il metodo set_include_path alla configurazione generale del sistema.

Come è semplice notare, l’ordine in cui tali path vengono processati parte dal codepool local, per poi passare al codepool community e successivamente al codepool core. Perchè tutto questo è importante? Perchè questo sistema permette di sovrascrivere (override) le classi all’interno del codepool core senza dover mettere mano al codice originale della piattaforma Magento.

Articoli correlati