Yii Framework Forum: Integrazione tcpdf - in quale cartella copiare i files? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Integrazione tcpdf - in quale cartella copiare i files? Rate Topic: ***-- 1 Votes

#1 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 26 April 2011 - 04:45 PM

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
0

#2 User is offline   markux 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 106
  • Joined: 26-November 10
  • Location:Grosseto

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
0

#3 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

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

'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?
0

#4 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

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
 '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',
 );

0

#5 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

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?
0

#6 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 27 April 2011 - 12:22 PM

View Postsensorario, 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?


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...
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users