Joomla.it Forum
Non solo Joomla... => Sviluppo => : steganoga 01 Nov 2014, 17:28:38
-
non è propriamente un 'offuscatore ma rende la vita difficile ai copioni e alleggerisce i files dai commenti, più propriamente qualsiasi cosa il php non legge/esegue viene eliminata
<?php
class revise {
function __construct($target = '') {
/* Generate an iterator starting at target path folder */
$dirs = new RecursiveDirectoryIterator((string) $target);
$list = new RecursiveIteratorIterator($dirs);
/* NB $list is not an array */
$this->list = $list;
}
/**
* Run throught iteration and execute an action/function on file
*
* @return bool
*/
public function clean($type='') {
foreach ($this->list as $path =>$ignore) {
if (is_file($path) ){
if($type != ''){
$file = end( explode('/',$path) );
$ext = end( explode('.',$file) );
if($ext === $type){
$this->doClean($path);
}
} else {
$this->doClean($path);
}
}
}
return true;
}
private function doClean($path=''){
if(isset($path) && $path != ''){
$stripped = php_strip_whitespace($path);
$fp = fopen($path, 'w');
if(!fwrite($fp, $stripped)){
print('no scritto');
}
fclose($fp);
}
return true;
}
}
#### Pulisce tutti i commenti ed elimina tutti gli spazi vuoti nel codice
$path = '';
$test = new revise($path);
$test->clean('php');
non centra con joomla, basta copiarlo in un file e richiamare il file dopo averlo configurato.
ATTENZIONE alla path che inserite perchè non c'è la "sicura" ... se spara.. spara!
PS: ma che bella è questa funzione di php! Non tocca i files del template perchè agisce solo tra <?php e ?> ... se ci ragionavo un po' potevo anche arrivarci invece è stata una piacevole sorpresa.
In questo modo se si pulisce un estensione di joomla, chi la usa può usufruire di codice ordinato e commentato per gli override
-
Ho provato ad applicarlo all'intero pacchetto joomla prima dell'installazione, così l'installazione successiva mi ha confermato che nulla fosse stato compromesso.
Ho eliminato spazi e commenti in tutto joomla e ho ri iniettato in testa ad ogni files la parte riguardante la licenza e lo sviluppatore.
da 31 Mb è diventato 26,7Mb ... -4,3Mb inutili per il funzionamento
sarebbe interessante vedere se anche nei tempi di esecuzione è cambiato qualcosa... qualcuno ha tempo da buttare a giocare un po?