Vfs::$user should be protected and moved to Vfs\Base plus a getter and setter method added for public access,
as after setting it in 21.1+, Api\Vfs\StreamWrapper::init_static() need to be called to set the default user context!
without the need to destroy the session, if the sharee is a different user
This is accomplished by keeping the sharee in the stream context / attribute of the vfs class(es) instead of static Vfs::$user.
Later is still used for the current user - identical to egw_info[user][account_id].
This commit / merge of the vfs-context feature branch also added the abilty to mount WebDAV sources, eg. a sharing link from an other EGroupware instance
or any WebDAV server
- to resolve sharing-path to url, we need to restore full mount-tab
- egw_vfs::clearstatcache() was not clearing resolve_url cache, causing previous share to be used
- need to set egw_info[user][vfs_user] after egw_session::create, as it overwrites it
- PSR4 autoloader exists beside our old autloader to support old as well as new structure until everything is ported over
- moved ported API stuff from phpgwapi to new api directory (idea is phpgwapi become a compatibility layer for old code, while we only port selected stuff to new api directory)
- namespaces use prefix "EGroupware", then (first letter capitalised) app-name or "Api", sub-system names like "Vfs" or for apps "Ui", "Bo, "So" and at least class name starting with a capital letter and without understores eg. "StreamWrapper" plus just ".php"
- examples:
+ egw_vfs in phpgwapi/inc/class.egw_vfs.inc.php --> EGroupware\Api\Vfs in api/src/Vfs.php
+ sqlfs_stream_wrapper in phpgwapi/inc/class.sqlfs_stream_wrapper.inc.php --> EGroupware\Api\Vfs\Sqlfs\StreamWrapper in api/src/Vfs/Sqlfs/StreamWrapper.php
+ sqlfs_utils in phpgwapi/inc/class.sqlfs_utils.inc.php --> EGroupware\Api\Vfs\Sqlfs\Utils in api/src/Vfs/Sqlfs/Utils.php
- api directory is no a new svn module but exists (like home) as sub-directory under base egroupware module