[Tickets #6992] Horde_Vfs rewrite

bugs at horde.org bugs at horde.org
Mon Jun 30 05:15:17 UTC 2008


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/6992
------------------------------------------------------------------------------
  Ticket             | 6992
  Created By         | Chuck Hagenbuch <chuck at horde.org>
  Summary            | Horde_Vfs rewrite
  Queue              | Horde Framework Packages
  Version            | HEAD
  Type               | Enhancement
  State              | New
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


Chuck Hagenbuch <chuck at horde.org> (2008-06-30 01:15) wrote:

Horde_Vfs_Adapter_Base
Horde_Vfs_File (allow subclassing and specifying the file class to  
instantiate)
Horde_Vfs_Folder (allow subclassing and specifying the folder class to  
instantiate)

Filtering iterator, but let the adapter do the filter if it can. I.e,  
Horde_Vfs_Filter_Glob -> the file backend can do the glob natively, so  
the result isn't wrapped with that filter. Something like:

$vfs->ls($dir, array(new Horde_Vfs_Filter_Glob('*.php')));

- backend gets the array of filters
- if the backend can apply the filter it does
- otherwise, the resulting Horde_Vfs_Folder_Iterator is wrapped with a  
filtering iterator to apply the filter

- Subclass or copy SplFileObject, some of the DirectoryIterator stuff?


What else can be done with stream wrappers?
php -r "var_dump(stream_get_wrappers());"
array(14) {
   [0]=>
   string(3) "php"
   [1]=>
   string(4) "file"
   [2]=>
   string(4) "data"
   [3]=>
   string(4) "http"
   [4]=>
   string(3) "ftp"
   [5]=>
   string(13) "compress.zlib"
   [6]=>
   string(5) "https"
   [7]=>
   string(4) "ftps"
   [8]=>
   string(10) "ssh2.shell"
   [9]=>
   string(9) "ssh2.exec"
   [10]=>
   string(11) "ssh2.tunnel"
   [11]=>
   string(8) "ssh2.scp"
   [12]=>
   string(9) "ssh2.sftp"
   [13]=>
   string(3) "zip"
}





More information about the bugs mailing list