SPL significa Standard PHP Library.
SplFileObject
usa internamente el recurso de flujo creado con fopen
. ¿Entonces su pregunta debería ser cuándo es interesante utilizar SplFileObject
o trabajar directamente con un recurso de flujo?
SplFileObject
pros:
SplFileObject
proporcionar un enfoque OOP para presentar manipulación (fread
se añadió en PHP 5.5.11, fputcsv
se añadió en PHP 5.4).
SplFileObject
implementa varias interfaces PHP útiles para permitir el uso de otras SPL Iterator para manipular mejor su archivo.
SplFileObject
principal desventaja es que no permite el acceso a su recurso de secuencia interna . Las funciones de PHP se construyeron originalmente para trabajar directamente con un recurso de flujo. El hecho de que el SplFileObject
no da acceso a su propio recurso de secuencia interna que sea inutilizable con muchas PHP construido en funciones:
php stream filters uso es pobre, con SplFileObject
.Debe confiar en el envoltorio de meta php://filter
, que limita su utilidad.
usando SplFileObject
con cURL
no es posible
para resumir, y un recurso SplFileObject
corriente no son intercambiables. Cualquier cosa hecha usando SplFileObject
podría lograrse usando un recurso de flujo y una implementación de usuario de SplFileObject
, pero el reverso no es verdadero.
Por lo tanto, dependiendo del caso de uso, utilizar un recurso de flujo creado por fopen
puede ser una mejor opción que confiar en SplFileObject
.
En cuanto al método de cierre, no necesita uno ... solo necesita establecer el controlador en nulo para liberar/cerrar el recurso de flujo interno.
$file = new SplFileObject('/path/to/my/file'); //the file handler is created
$file = null; //the file handler is closed
es posible que desee utilizar la etiqueta [spl] aquí. las pocas personas que lo siguen suelen ser muy entusiastas y conocedores. – goat
@rambocoder Hecho –