Sto lavorando in un progetto php e le nostre dipendenze di terze parti sono gestite con packagist
tramite composer.json
. Roba abbastanza standard. A volte ci imbattiamo in una situazione in cui un determinato plug-in ha qualche problema, tale che vorremmo continuare a utilizzare il plug-in, ma il problema lo rende una responsabilità o semplicemente inutilizzabile.
Un'idea potrebbe essere quella di effettuare una richiesta di pull per risolvere il problema, ma ciò implica "a. il repository viene monitorato attivamente e b. in realtà sappiamo come risolvere il problema". Potremmo non averne né Se abbiamo (b) ma non (a) potremmo sborsare il pronti contro termine con la nostra correzione? O potremmo modificare il file nella directory vendor
e impegnarlo nel repository? Entrambe le prospettive sembrano poco attraenti.
Più recentemente il pacchetto php-whois
ha avuto un problema, perché utilizzava un codice terribilmente asinino:
if (empty($r)) {
if ($hasreg)
$r['registered'] = 'no';
}
Se $r
non è impostato, o =''
o =0
o =null
o un numero di altre situazioni, empty($r)
sarà true e $r['registered'] = 'no'
genererà almeno un avviso, oppure, a partire da php ~ 7.1 +, innesca un errore fatale.
Qual è la migliore linea d'azione? Trova un nuovo pacchetto php-whois
? Risolvi la (facile) correzione (esegui solo $r=[];
) e impegnati nel nostro repository? Qualcos'altro?
Questa è una situazione complicata in cui non mi trovo spesso, ma è emersa più di una volta.
Uso di Laravel 5.3
, nel caso sia pertinente.