Page MenuHomeDevCentral

No OneTemporary

diff --git a/workspaces/src/includes/ObjectDeserializable.php b/workspaces/src/Engines/Serialization/ObjectDeserializable.php
similarity index 62%
rename from workspaces/src/includes/ObjectDeserializable.php
rename to workspaces/src/Engines/Serialization/ObjectDeserializable.php
index 39e55c1..48b5e56 100644
--- a/workspaces/src/includes/ObjectDeserializable.php
+++ b/workspaces/src/Engines/Serialization/ObjectDeserializable.php
@@ -1,30 +1,35 @@
<?php
/**
* _, __, _, _ __, _ _, _, _
* / \ |_) (_ | | \ | /_\ |\ |
* \ / |_) , ) | |_/ | | | | \|
* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*
- * ObjectDeserializable and ObjectDeserializableWithContext interfaces
+ * ObjectDeserializable interface
*
* @package ObsidianWorkspaces
* @subpackage Keruald
* @author Sébastien Santoro aka Dereckson <dereckson@espace-win.org>
* @license http://www.opensource.org/licenses/bsd-license.php BSD
* @filesource
*
*/
+namespace Waystone\Workspaces\Engines\Serialization;
+
/**
* ObjectDeserializable interface
*/
interface ObjectDeserializable {
+
/**
- * Loads a specified class instance from a generic object. Typically used to deserialize a JSON document.
+ * Loads a specified class instance from a generic object.
+ * Typically used to deserialize a JSON document.
*
* @param object $data The object to deserialize
- * @return object The deserialized instance
+ *
+ * @return self The deserialized instance
*/
- public static function loadFromObject ($data);
+ public static function loadFromObject (object $data) : self;
}
diff --git a/workspaces/src/includes/autoload.php b/workspaces/src/includes/autoload.php
index 6e00cba..a5f00d7 100644
--- a/workspaces/src/includes/autoload.php
+++ b/workspaces/src/includes/autoload.php
@@ -1,106 +1,105 @@
<?php
/**
* _, __, _, _ __, _ _, _, _
* / \ |_) (_ | | \ | /_\ |\ |
* \ / |_) , ) | |_/ | | | | \|
* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*
* Classes and interfaces auto loader
*
* @package ObsidianWorkspaces
* @filesource
*/
/**
* This SPL autoloader method is called when a class or an interface can't be loaded.
*/
function obsidian_autoload ($name) {
$dir = dirname(__DIR__);
///
/// Applications
///
if ($name == 'Document') { require $dir . '/apps/documents/Document.php'; return true; }
if ($name == 'DocumentsApplication') { require $dir . '/apps/documents/DocumentsApplication.php'; return true; }
if ($name == 'DocumentsApplicationConfiguration') { require $dir . '/apps/documents/DocumentsApplicationConfiguration.php'; return true; }
if ($name == 'DocumentType') { require $dir . '/apps/documents/DocumentType.php'; return true; }
if ($name == 'HelloWorldApplication') { require $dir . '/apps/helloworld/HelloWorldApplication.php'; return true; }
if ($name == 'MediaWikiMirrorApplication') { require $dir . '/apps/mediawikimirror/MediaWikiMirrorApplication.php'; return true; }
if ($name == 'MediaWikiMirrorApplicationConfiguration') { require $dir . '/apps/mediawikimirror/MediaWikiMirrorApplicationConfiguration.php'; return true; }
if ($name == 'StaticContentApplication') { require $dir . '/apps/staticcontent/StaticContentApplication.php'; return true; }
if ($name == 'StaticContentApplicationConfiguration') { require $dir . '/apps/staticcontent/StaticContentApplicationConfiguration.php'; return true; }
///
/// Core controllers
///
if ($name == 'ErrorPageController') { require $dir . '/controllers/errorpage.php'; return true; }
if ($name == 'FooterController') { require $dir . '/controllers/footer.php'; return true; }
if ($name == 'HeaderController') { require $dir . '/controllers/header.php'; return true; }
if ($name == 'HomepageController') { require $dir . '/controllers/home.php'; return true; }
///
/// Keruald and Obsidian Workspaces libraries
///
if ($name == 'Events') { require $dir . '/includes/Events.php'; return true; }
if ($name == 'LoadableWithContext') { require $dir . '/includes/LoadableWithContext.php'; return true; }
- if ($name == 'ObjectDeserializable') { require $dir . '/includes/ObjectDeserializable.php'; return true; }
if ($name == 'Application') { require $dir . '/includes/apps/Application.php'; return true; }
if ($name == 'ApplicationConfiguration') { require $dir . '/includes/apps/ApplicationConfiguration.php'; return true; }
if ($name == 'ApplicationContext') { require $dir . '/includes/apps/ApplicationContext.php'; return true; }
if ($name == 'AddToGroupUserAction') { require $dir . '/includes/auth/AddToGroupUserAction.php'; return true; }
if ($name == 'AuthenticationMethod') { require $dir . '/includes/auth/AuthenticationMethod.php'; return true; }
if ($name == 'AzharProvider') { require $dir . '/includes/auth/AzharProvider.php'; return true; }
if ($name == 'GivePermissionUserAction') { require $dir . '/includes/auth/GivePermissionUserAction.php'; return true; }
if ($name == 'UserAction') { require $dir . '/includes/auth/UserAction.php'; return true; }
if ($name == 'Cache') { require $dir . '/includes/cache/cache.php'; return true; }
if ($name == 'CacheMemcached') { require $dir . '/includes/cache/memcached.php'; return true; }
if ($name == 'CacheVoid') { require $dir . '/includes/cache/void.php'; return true; }
if ($name == 'Collection') { require $dir . '/includes/collection/Collection.php'; return true; }
if ($name == 'CollectionDocument') { require $dir . '/includes/collection/CollectionDocument.php'; return true; }
if ($name == 'FilesCollection') { require $dir . '/includes/collection/FilesCollection.php'; return true; }
if ($name == 'MongoDBCollection') { require $dir . '/includes/collection/MongoDBCollection.php'; return true; }
if ($name == 'MongoDBCollectionIterator') { require $dir . '/includes/collection/MongoDBCollectionIterator.php'; return true; }
if ($name == 'MySQLCollection') { require $dir . '/includes/collection/MySQLCollection.php'; return true; }
if ($name == 'SQLiteCollection') { require $dir . '/includes/collection/SQLiteCollection.php'; return true; }
if ($name == 'SQLCollection') { require $dir . '/includes/collection/SQLCollection.php'; return true; }
if ($name == 'Context') { require $dir . '/includes/controller/Context.php'; return true; }
if ($name == 'Controller') { require $dir . '/includes/controller/Controller.php'; return true; }
if ($name == 'RunnableWithContext') { require $dir . '/includes/controller/RunnableWithContext.php'; return true; }
if ($name == 'Database') { require $dir . '/includes/database/Database.php'; return true; }
if ($name == 'DatabaseException') { require $dir . '/includes/database/DatabaseException.php'; return true; }
if ($name == 'DatabaseResult') { require $dir . '/includes/database/DatabaseResult.php'; return true; }
if ($name == 'EmptyDatabaseResult') { require $dir . '/includes/database/EmptyDatabaseResult.php'; return true; }
if ($name == 'MySQLDatabase') { require $dir . '/includes/database/MySQLDatabase.php'; return true; }
if ($name == 'MySQLDatabaseResult') { require $dir . '/includes/database/MySQLDatabaseResult.php'; return true; }
if ($name == 'MySQLiDatabase') { require $dir . '/includes/database/MySQLiDatabase.php'; return true; }
if ($name == 'MySQLiDatabaseResult') { require $dir . '/includes/database/MySQLiDatabaseResult.php'; return true; }
if ($name == 'Language') { require $dir . '/includes/i18n/Language.php'; return true; }
if ($name == 'Message') { require $dir . '/includes/i18n/Message.php'; return true; }
if ($name == 'TextFileMessage') { require $dir . '/includes/i18n/TextFileMessage.php'; return true; }
if ($name == 'Disclaimer') { require $dir . '/includes/objects/Disclaimer.php'; return true; }
if ($name == 'Permission') { require $dir . '/includes/objects/Permission.php'; return true; }
if ($name == 'User') { require $dir . '/includes/objects/user.php'; return true; }
if ($name == 'UserGroup') { require $dir . '/includes/objects/usergroup.php'; return true; }
if ($name == 'Workspace') { require $dir . '/includes/workspaces/Workspace.php'; return true; }
if ($name == 'WorkspaceConfiguration') { require $dir . '/includes/workspaces/WorkspaceConfiguration.php'; return true; }
return false;
}
spl_autoload_register('obsidian_autoload');
diff --git a/workspaces/src/includes/collection/CollectionDocument.php b/workspaces/src/includes/collection/CollectionDocument.php
index e151325..9a448b1 100644
--- a/workspaces/src/includes/collection/CollectionDocument.php
+++ b/workspaces/src/includes/collection/CollectionDocument.php
@@ -1,57 +1,59 @@
<?php
/**
* _, __, _, _ __, _ _, _, _
* / \ |_) (_ | | \ | /_\ |\ |
* \ / |_) , ) | |_/ | | | | \|
* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*
* Collection document class
*
* @package ObsidianWorkspaces
* @subpackage Collection
* @author Sébastien Santoro aka Dereckson <dereckson@espace-win.org>
* @license http://www.opensource.org/licenses/bsd-license.php BSD
* @filesource
*/
- /**
+use Waystone\Workspaces\Engines\Serialization\ObjectDeserializable;
+
+/**
* Collection document class
*
* This class represents a document, inside a collection.
*/
class CollectionDocument implements JsonSerializable, ObjectDeserializable {
/**
* @var string The document identifier
*/
public $id = '';
/**
* Specifies data which should be serialized to JSON
*
* @return moxed data which can be serialized by json_encode()
*/
public function jsonSerialize () {
return $this;
}
/**
* Loads a CollectionDocument instance from a generic object.
*
* @param object $data The object to deserialize
* @return object The deserialized instance
*/
public static function loadFromObject ($data) {
$instance = new static;
foreach ($data as $key => $value) {
if ($key == '_id') {
//Kludge to let MongoCollection directly use this method
//without having to create an intermediary object or to
//browse each property twice, one to substitute _id, then here.
$instance->id = $value;
}
$instance->$key = $value;
}
return $instance;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Wed, Mar 18, 12:33 (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3539656
Default Alt Text
(10 KB)

Event Timeline