Creazione di una libreria che richiede altre librerie (PHP)

1

Diciamo che sto creando una libreria PHP che utilizza PHP 5.3 e namespace e la mia libreria richiede il funzionamento di un'altra libreria (in questo caso è la libreria sfYaml). Sto cercando di pensare al modo migliore per includere questa libreria.

È considerata pratica buona / accettabile includere le librerie di terze parti direttamente nel mio codice (presupponendo che la licenza permetta quale sfYaml) o è meglio non includere le librerie di terze parti e fare in modo che l'utente si assicuri che le librerie siano da qualche parte sul loro sistema e hanno loro configurare il percorso?

Voglio dire che solo il problema che ho avuto in passato con l'inclusione di quelle librerie di terze parti nelle mie librerie è che se l'utente ha la stessa libreria per il loro progetto, ci sarebbero problemi con l'includerlo due volte però ora con PHP 5.3 e namespace, non è un problema. Sto solo cercando di pensare se ci sono altri problemi con l'inclusione di librerie di terze parti direttamente nel mio codice (con il loro namespace sotto il mio spazio dei nomi principale).

    
posta ryanzec 29.11.2011 - 13:14
fonte

1 risposta

2

Il problema principale con la ridistribuzione di una libreria di terze parti con il tuo codice è la licenza. Devi assicurarti che:

  1. La libreria di terze parti è concessa in licenza con una licenza che consente la ridistribuzione,
  2. La libreria di terze parti è concessa in licenza con una licenza che consente la modifica,
  3. La licenza del tuo codice non è incompatibile con la licenza della libreria di terze parti.

Il punto 2 si applica alle piccole modifiche per convertire la libreria di terze parti nella gerarchia dei namespace. Ora puoi presumere che la licenza MIT , permetta tutti e tre i punti, ma se non ci dici il tuo scelta della licenza non possiamo essere certi.

Se tutto va bene con le licenze, direi che è una buona pratica distribuire tutte le dipendenze con il tuo codice. Gli utenti del tuo codice potrebbero già averne alcuni, ma non puoi essere sicuro della versione che hanno. È meglio offrire agli utenti tutto ciò di cui hanno bisogno e tutto ciò che hai testato, i namespace fanno miracoli in quelle situazioni. Potresti avere uno spazio dei nomi \your_top_level_namespacerd_party e inserire tutte le dipendenze sotto di esso.

    
risposta data 29.11.2011 - 13:25
fonte

Leggi altre domande sui tag