Ho quella che probabilmente è una domanda di ingegneria eccessiva. Ho qualche codice PHP che registra i messaggi in un file. Abbiamo avuto un problema con il file avente i permessi sbagliati di volta in volta. Mentre stiamo risolvendo il problema, sto scrivendo una soluzione per questo nella funzione di logging, cambiando i permanenti e i proprietari unix sul file di log.
Quindi il mio codice assomiglia a questo:
function log($message) {
if ( FALSE === file_put_contents(log_path(), $message) ) {
chown(log_path(), 'apache');
chgrp(log_path(), 'www-data');
chown(log_path(), 0770);
// now I'm repeating this line
if ( FALSE === file_put_contents(log_path(), $message) ) {
// log error to database
db_log($message);
}
}
}
Nell'interesse di DRY, posso in qualche modo modificare il codice per evitare di ripetere la riga if ( FALSE === file_put_contents(log_path(), $message) ) {
? Certo, non posso usare la ricorsione, perché sarebbe andata avanti all'infinito.