Vorrei includere nel mio progetto yii (o meglio, in tutti i miei progetti yii) la libreria tcpdf per la generazione di pdf.
Per il funzionamento non ho problemi, ho già letto alcuni articoli e mi sono stati molto utili ma ho alcuni dubbi riguardo la struttura delle cartelle di Yii
La domanda è questa: secondo la logica delle cartelle di Yii dove è più corretto copiare i files della libreria tcpdf?
Nella ./YiiFramework/vendors/?
Nella ./MyProject/protected/vendors/? (tra l'altro questa cartella non esiste nel progetto auto.generato da yiic, dovrei crearla)
Nella ./MyProject/protected/components/?
Sono alle prime armi con lo studio di questo bellissimo framework e ancora non mi sono chiare alcune cose. Vorrei però capirne la logica corretta.
Grazie
Page 1 of 1
Integrazione tcpdf - in quale cartella copiare i files?
#2
Posted 27 April 2011 - 01:57 AM
seguendo il forum ed alcuni progetti ho visto che la maggior parte utilizza protected/vendors, altri la cartella protected/lib .
Io ti consiglio vendors.
ciao
Io ti consiglio vendors.
ciao
#3
Posted 27 April 2011 - 03:17 AM
Grazie Markux.
Quindi ti chiedo un'altra conferma. Se copio la libreria di funzioni sotto la ./MyProject/Vendors/ posso importarla nel mio progetto aggiungendo (nel file di configurazione) una riga con
E' corretto?
E se volessi posizionarla cotto la ./YiiFramework/vendors/ per poterla utilizzare con tutti i progetti sullo stesso web server come dovrei importarla?
Quindi ti chiedo un'altra conferma. Se copio la libreria di funzioni sotto la ./MyProject/Vendors/ posso importarla nel mio progetto aggiungendo (nel file di configurazione) una riga con
'import'=>array( ... 'application.vendors.tcpdf.*' ... ),
E' corretto?
E se volessi posizionarla cotto la ./YiiFramework/vendors/ per poterla utilizzare con tutti i progetti sullo stesso web server come dovrei importarla?
#4
Posted 27 April 2011 - 06:44 AM
Facendo delle ulteriori ricerche e prove ho trovato una soluzione "abbastanza pulita" per fare quello che avevo in mente, cioè installare una estensione a livello di core di Yii in modo da poterla riutilizzare con tutti i progetti Yii sullo stesso web server.
Vorrei condividerla con voi nel caso possa tornare utile a qualcuno oppure per muovere critiche e suggerimenti (che sono sempre ben accetti).
Scenario: devo integrare un'estensione di terze parti con Yii (in questo caso tcpdf) e referenziarla per poterla utilizzare con tutti i progetti. Voglio inoltre referenziare inoltre il nome della sua classe principale (class TCPDF) con l'utilizzo di Class Map
1 - Copio la cartella contenente i files dell'estensione tcpdf sotto ./YiiFramework/vendors/tcpdf/
2 - Nel file di configurazione (main.php) aggiungo un percorso per l'import
3 - nel file index.php aggiungo il seguente spezzone di codice (questo codice va messo tra require_once($yii); e Yii::createWebApplication($config)->run();)
Vorrei condividerla con voi nel caso possa tornare utile a qualcuno oppure per muovere critiche e suggerimenti (che sono sempre ben accetti).
Scenario: devo integrare un'estensione di terze parti con Yii (in questo caso tcpdf) e referenziarla per poterla utilizzare con tutti i progetti. Voglio inoltre referenziare inoltre il nome della sua classe principale (class TCPDF) con l'utilizzo di Class Map
1 - Copio la cartella contenente i files dell'estensione tcpdf sotto ./YiiFramework/vendors/tcpdf/
2 - Nel file di configurazione (main.php) aggiungo un percorso per l'import
'import'=>array(
'system.vendors.tcpdf.*',
),
3 - nel file index.php aggiungo il seguente spezzone di codice (questo codice va messo tra require_once($yii); e Yii::createWebApplication($config)->run();)
Yii::$classMap=array( 'TCPDF'=>'tcpdf.php', );
#5
Posted 27 April 2011 - 10:48 AM
Mi è appena venuto un dubbio. Ma è possibile mettere le estensioni dentro yii e non dentro alla singola applicazione? Mi spiego: se ho 10 siti web che usano TinyMCE, estendo i 10 siti o metto l'editor direttamente dentro a Yii?
Poi: che problemi possono saltare fuori? A me in questo momento viene in mente l'aggiornamento. Quando aggiorno basta che ricopio le estensioni?
Poi: che problemi possono saltare fuori? A me in questo momento viene in mente l'aggiornamento. Quando aggiorno basta che ricopio le estensioni?
#6
Posted 27 April 2011 - 12:22 PM
sensorario, on 27 April 2011 - 10:48 AM, said:
Mi è appena venuto un dubbio. Ma è possibile mettere le estensioni dentro yii e non dentro alla singola applicazione? Mi spiego: se ho 10 siti web che usano TinyMCE, estendo i 10 siti o metto l'editor direttamente dentro a Yii?
Poi: che problemi possono saltare fuori? A me in questo momento viene in mente l'aggiornamento. Quando aggiorno basta che ricopio le estensioni?
Poi: che problemi possono saltare fuori? A me in questo momento viene in mente l'aggiornamento. Quando aggiorno basta che ricopio le estensioni?
Ciao Sensorario, è proprio quello che ho fatto.
Ho copiato la mia estensione nella cartella vendors della Yii (quella che io ho chiamato YiiFramework e che contiene il framework Yii) e, da ogni applicazione, punto a questa. Mi vengono in mente questi vantaggi/svantaggi di utilizzare questa configurazione:
Vantaggi
- Copio l'estensione una sola volta. Se avessi 10 applicazioni dovrei copiare la stessa estensione nei folder di ogni applicazione (sempre che mi serva utilizzarla in tutte)
- Se devo aggiornare l'estensione basta che la aggiorno una volta sola e l'aggiornamento verrà apportato su tutte le applicazioni che puntano a questa cartella
Svantaggi
- Se devo aggiornare la nuova versione di Yii mi devo ricordare di copiare tutte le estensioni precedentemente integrate altrimenti non funzionerà in nessuna applicazione.
Hai fatto bene a farmi notare questa cosa. Devo segnarmi tutte le modifiche che faccio alla Yii in previsione di un futuro cambio di versione. Sicuramente mi dimenticherò qualcosa...
Share this topic:
Page 1 of 1

Help














