Newsgroup: it.comp.www.php
Titolo: Classe Xipe di PEAR su Win* (lungo)

 PEAR 1.1 
  - HTML_Template_Xipe 1.7.3
ed ho, (ahimè), scoperto che:
1) il PEAR non è affatto pre-installato in PHP 4.3.x (per Win*)
2) che alcune funzionalità non sono state testate in ambiente Win*
Tralascio il punto 1, poichè la soluzione è banale.
Per quanto riguarda il punto 2:
Nella FAQ di PEAR 
http://pear.php.net/manual/en/faq.windows.php
si legge:
"Note: There are some classes (like Schedule/At.php), 
 that do not work on Windows, 
 because they use *nix specific commands"
A questo vorrei aggiungere che anche HTML/HTML_Template_Xipe 
risulta essere inutilizzabile in ambiente windows,
ma questa volta per un errore tanto banale, quanto fastidioso.
Per spiegare l'errore devo farvi un esempio:
Avete creato i seguenti file (come da tutorial di Xipe)
  index.php
  index.tpl
e li pubblicate su IIS dalla seguente directory: 
  C:\www\test\
a questo punto il prode Xipe vi avvisa con il seguente errore:
"... couldn't make directory: 'c:' under 'C:/www/test/tmp' ..."
??? Grazie al cavolo che non riesci a creare una dir. "C:" !!!
Ma perchè la vuole creare?
Perchè Xipe è "A simple, fast and powerful template engine"
e usa una CACHE dei template compilati per velocizzarne 
la visualizzazione.
Ok, la CACHE la crea nella subdirectory "C:/www/test/tmp"
e questo pezzo di codice 
(estratto dalla riga 335 del file Main.php della classe Xipe)
ci da un'idea del COME:
---------------------------------------------------------------------
...
$path = explode('/',$directory);
foreach( $path as $aDir )
{   
  $compileDir = $compileDir."/$aDir";
  if( !@is_dir($compileDir) )
  {
    umask(0000);
    if( !@mkdir($compileDir,0777) )
    {
      return $this->_error( "couldn't make directory: 
                             bla bla bla", PEAR_ERROR_DIE );
    }
  }
}
...
---------------------------------------------------------------------
In pratica, cerca di creare una directory per la CACHE 
semplicemente scomponendo il PATH attuale ($directory).
Ovviamente sui sistemi *nix questa operazione è lecita,
poichè qualunque percorso è nel formato /bla/bla/bla/
Ma, come sappiamo, sui sistemi Win* (a causa della lettera del drive) 
non è così banale.
Certo, qualcuno potrebbe dire: "basterebbe modificare $directory 
eliminando il simbolo ":" dopo la lettera del drive per ovviare 
al problema".
Ma questa soluzione (l'ho pravata) ci porterebbe poco lontano, 
visto che la suddetta variabile, viene usata anche per accedere 
ai VERI file presenti sul disco, e un percorso del tipo:
"C/www/test/" Windows non lo digerirebbe un granchè.
A questo punto, non potendo passare a un sistema *nix,
sono indeciso sulla strada da prendere.
A) Mi metto a PATCHARE tutte le classi in considerazione di questa 
   problematica?
B) Abbandono l'idea di usare Xipe (con tutti i vantaggi che ne sarebbero 
   derivati)?
Si accettano consigli.
Luke650.


Credo la B, per il motivo che esistono altre classi per la gestione di
Template (molto utilizzate FastTemplate, la classe template della
PHPLib, EasyTemplate).
Personalmente, non ho mai lavorato con queste classi (utilizzo una
piccola libreria di funzioni) e non so dirti quale sia la migliore, la
più semplice da utilizzare, la più veloce (quella di PHPLib sembra che
sia notoriamente lenta) etc.
Coma mai hai scelto Xipe?
--
Non è il concetto di intelligenza extraterrestre a essere difficile da afferrare. 
E' il concetto opposto che incontra resistenze.
I. Asimov .

 Coma mai hai scelto Xipe?
Perchè ho avuto più o meno le stessa "trafila" che ha avuto l'autore
(
wol...@kriesing.de
).
Come si può leggere nel capitolo 2.1 della documentazione:
http://opensource.visionp.biz/uploads/media/Xipe.html
esistono altri motori, ed ognuno di questo ha dei pro e dei contro...
ma, come la famosa "coperta corta",... 
nessuno riesce a coprire tutte le pecche contemporaneamente.
Xipe cerca di mettere insieme tutti i vantaggi trovati qua e la.
E' stato un raro caso in cui mi sono appassionato al prodotto prima di
usarlo!
"galeotto" fu il fatto che mi sono stampato il manuale
e me lo sono letto sul tram mentre tornavo a casa. ;)
Il giorno seguente l'ho provato... e ci sono rimasto ... come
dire?....
MALE? :'(