[#6992] Horde_Vfs rewrite
Summary Horde_Vfs rewrite
Queue Horde Framework Packages
Queue Version HEAD
Type Enhancement
State Accepted
Priority 1. Low
Owners
Requester Chuck Hagenbuch <chuck (at) horde (dot) org>
Created 06/30/2008 (107 days ago)
Due
Updated 08/01/2008 (75 days ago)
Assigned
Resolved
Attachments
Milestone
Patch No

History
08/01/2008 Jan Schneider State ⇒ Accepted
 
06/30/2008 Chuck Hagenbuch Comment #1
Patch ⇒
Milestone ⇒
Queue ⇒ Horde Framework Packages
Summary ⇒ Horde_Vfs rewrite
Type ⇒ Enhancement
Priority ⇒ 1. Low
State ⇒ New
Reply to this comment
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"
}