You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I have taken the latest ownCloud stable version (9.1) and started to prototyping a custom EOS storage on it. I started to implement the methods required by the IStorage interface to create a HomeStorage based on EOS but I have found that there are still core classes that rely on \OCP\Files\Storage instead of \OCP\Files\IStorage. See trace:
Type: TypeError
Code: 0
Message: Argument 2 passed to OC_Util::{closure}() must implement interface OCP\Files\Storage, instance of OC\Files\EosStore\HomeEosStoreStorage given, called in /Applications/MAMP/htdocs/owncloud/lib/private/Files/Storage/StorageFactory.php on line 100
File: /Applications/MAMP/htdocs/owncloud/lib/private/legacy/util.php
Line: 173
Trace
#0 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Storage/StorageFactory.php(100): OC_Util::{closure}('/test/', Object(OC\Files\EosStore\HomeEosStoreStorage), Object(OC\Files\Mount\MountPoint))
#1 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Storage/StorageFactory.php(82): OC\Files\Storage\StorageFactory->wrap(Object(OC\Files\Mount\MountPoint), Object(OC\Files\EosStore\HomeEosStoreStorage))
#2 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Mount/MountPoint.php(137): OC\Files\Storage\StorageFactory->getInstance(Object(OC\Files\Mount\MountPoint), '\\OC\\Files\\EosSt...', Array)
#3 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Mount/MountPoint.php(160): OC\Files\Mount\MountPoint->createStorage()
#4 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Filesystem.php(315): OC\Files\Mount\MountPoint->getStorage()
#5 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Filesystem.php(418): OC\Files\Filesystem::getStorage('test')
#6 /Applications/MAMP/htdocs/owncloud/lib/private/Files/Filesystem.php(370): OC\Files\Filesystem::initMountPoints('test')
#7 /Applications/MAMP/htdocs/owncloud/lib/private/legacy/util.php(255): OC\Files\Filesystem::init('test', '/test/files')
#8 /Applications/MAMP/htdocs/owncloud/lib/base.php(890): OC_Util::setupFS()
#9 /Applications/MAMP/htdocs/owncloud/index.php(39): OC::handleRequest()
#10 {main}
I also attach the diagram of storage classes; ideally I would like to have my EOS classes implementing the IStorage and not the Storage interface (that has been deprecated).
I think the solution to this problem is to promote the use of IStorage in any class that relies on Storage, but maybe that affects some logic :(
Another class that relies on methods not defined in the IStorage is the Wrapper,
What would be the task here ? Adding the methods to the interface would likely break other existing storages. So make it a IStorage2 interface and make sure to include all methods ?
@DeepDiver1975 @PVince81 @icewind1991 @moscicki @NadirRoGue
Hi,
I have taken the latest ownCloud stable version (9.1) and started to prototyping a custom EOS storage on it. I started to implement the methods required by the IStorage interface to create a HomeStorage based on EOS but I have found that there are still core classes that rely on
\OCP\Files\Storage
instead of\OCP\Files\IStorage
. See trace:I also attach the diagram of storage classes; ideally I would like to have my EOS classes implementing the IStorage and not the Storage interface (that has been deprecated).
I think the solution to this problem is to promote the use of IStorage in any class that relies on Storage, but maybe that affects some logic :(
Another class that relies on methods not defined in the IStorage is the Wrapper,
The text was updated successfully, but these errors were encountered: