Pablo Viquez Blog

Mi vida y cosas relacionadas

Skip to: Content | Sidebar | Footer

Cual version para PHAR? PHP 5.2 o PHP 5.3

9 September, 2008 (20:03) | PHP, Web Development | By: Pablo Viquez

En mis ratos libres he estado investigando los archivos Phar, los cuales son una manera de contener una aplicación entera en un solo archivo, parecidos a los JAR de Java.

Aunque no tengo mi proyecto todavia terminado, voy a publicar las notas de la investigación, por si alguien esta teniendo los mismos problemas/dudas.

Cual versión de PHP?

La extensión está disponible desde la version 5.2 y es cierto, he estado probando con la version 5.2.6 pero despues de varios errores instancie la extensión con "Reflection" y note que muchas de las funciones que la documentación expone no son disponibles en esta versión.

Haciendo ingenieria inversa a la extensión Phar obtenemos que con la version 5.2 la funcionalidad es mucho mas reducida que con la 5.3

 Reflection::export(new ReflectionClass('Phar')); 

Ejemplo con PHP 5.2 (solo metodos estaticos):

Class [
     
    class Phar extends RecursiveDirectoryIterator
               implements RecursiveIterator,
                          Iterator,
                          Traversable,
                          Countable,
                          ArrayAccess ] {

  - Static methods [9] {
    Method [  final static public method apiVersion ] {}
    Method [  final static public method canCompress ] {}
    Method [  final static public method canWrite ] {}
    Method [  final static public method loadPhar ] {
      - Parameters [2] {
        Parameter #0 [  $fname ]
        Parameter #1 [
 $alias ]
      }
    }

    Method [  final static public method mapPhar ] {
      - Parameters [1] {
        Parameter #0 [
 $alias ]
      }
    }

    Method [  final static public method getExtractList ] {}
    Method [  final static public method getSupportedSignatures ] {}
    Method [  final static public method getSupportedCompression ] {}
    Method [  final static public method isValidPharFilename ] {}
  }
}

Ejemplo con PHP 5.3 (solo metodos estaticos):

Class [
 
class Phar extends RecursiveDirectoryIterator
           implements RecursiveIterator,
                      SeekableIterator,
                      Traversable,
                      Iterator,
                      Countable,
                      ArrayAccess ] {

    Method [  final static public method apiVersion ] {}
    Method [  final static public method canCompress ] {}
    Method [  final static public method canWrite ] {}
    Method [  final static public method createDefaultStub ] {
      - Parameters [2] {
        Parameter #0 [
 $index ]
        Parameter #1 [
 $webindex ]
      }
    }
    Method [  final static public method getSupportedCompression ] {}
    Method [  final static public method getSupportedSignatures ] {}
    Method [  final static public method interceptFileFuncs ] {}
    Method [  final static public method isValidPharFilename ] {}
    Method [  final static public method loadPhar ] {
      - Parameters [2] {
        Parameter #0 [  $filename ]
        Parameter #1 [
 $alias ]
      }
    }

    Method [  final static public method mapPhar ] {
      - Parameters [2] {
        Parameter #0 [
 $alias ]
        Parameter #1 [
 $offset ]
      }
    }

    Method [  final static public method running ] {
      - Parameters [1] {
        Parameter #0 [  $retphar ]
      }
    }

    Method [  final static public method mount ] {
      - Parameters [2] {
        Parameter #0 [  $inphar ]
        Parameter #1 [  $externalfile ]
      }
    }

    Method [  final static public method mungServer ] {
      - Parameters [1] {
        Parameter #0 [  $munglist ]
      }
    }

    Method [  final static public method unlinkArchive ] {
      - Parameters [1] {
        Parameter #0 [  $archive ]
      }
    }

    Method [  final static public method webPhar ] {
      - Parameters [5] {
        Parameter #0 [
 $alias ]
        Parameter #1 [
 $index ]
        Parameter #2 [
 $f404 ]
        Parameter #3 [
 $mimetypes ]
        Parameter #4 [
 $rewrites ]
      }
    }
  }
}

del.icio.us Tags: ,,,,

Write a comment