]> git.mxchange.org Git - friendica.git/blobdiff - src/DI.php
Merge pull request #10813 from tobiasd/20211003-lengthcounter
[friendica.git] / src / DI.php
index 045425b8871df888f67a2cd08914b7ed8874294f..ea7310feedca3805eacd15e9dcb4577f2b3a8216 100644 (file)
@@ -39,6 +39,17 @@ abstract class DI
                self::$dice = $dice;
        }
 
+       /**
+        * Returns a clone of the current dice instance
+        * This usefull for overloading the current instance with mocked methods during tests
+        *
+        * @return Dice
+        */
+       public static function getDice()
+       {
+               return clone self::$dice;
+       }
+
        //
        // common instances
        //
@@ -123,6 +134,14 @@ abstract class DI
                return self::$dice->create(Content\Item::class);
        }
 
+       /**
+        * @return Content\Conversation
+        */
+       public static function conversation()
+       {
+               return self::$dice->create(Content\Conversation::class);
+       }
+
        /**
         * @return Content\Text\BBCode\Video
         */
@@ -239,6 +258,14 @@ abstract class DI
                return self::$dice->create(Factory\Api\Mastodon\Account::class);
        }
 
+       /**
+        * @return Factory\Api\Mastodon\Application
+        */
+       public static function mstdnApplication()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Application::class);
+       }
+
        /**
         * @return Factory\Api\Mastodon\Attachment
         */
@@ -247,6 +274,22 @@ abstract class DI
                return self::$dice->create(Factory\Api\Mastodon\Attachment::class);
        }
 
+       /**
+        * @return Factory\Api\Mastodon\Card
+        */
+       public static function mstdnCard()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Card::class);
+       }
+
+       /**
+        * @return Factory\Api\Mastodon\Conversation
+        */
+       public static function mstdnConversation()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Conversation::class);
+       }
+
        /**
         * @return Factory\Api\Mastodon\Emoji
         */
@@ -263,14 +306,6 @@ abstract class DI
                return self::$dice->create(Factory\Api\Mastodon\Error::class);
        }
 
-       /**
-        * @return Factory\Api\Mastodon\Field
-        */
-       public static function mstdnField()
-       {
-               return self::$dice->create(Factory\Api\Mastodon\Field::class);
-       }
-
        /**
         * @return Factory\Api\Mastodon\FollowRequest
         */
@@ -296,51 +331,48 @@ abstract class DI
        }
 
        /**
-        * @return Factory\Api\Mastodon\ListEntity
+        * @return Factory\Api\Mastodon\ScheduledStatus
         */
-       public static function mstdnList()
+       public static function mstdnScheduledStatus()
        {
-               return self::$dice->create(Factory\Api\Mastodon\ListEntity::class);
+               return self::$dice->create(Factory\Api\Mastodon\ScheduledStatus::class);
        }
 
        /**
-        * @return Factory\Api\Mastodon\Mention
+        * @return Factory\Api\Mastodon\Subscription
         */
-       public static function mstdnMention()
+       public static function mstdnSubscription()
        {
-               return self::$dice->create(Factory\Api\Mastodon\Mention::class);
+               return self::$dice->create(Factory\Api\Mastodon\Subscription::class);
        }
 
        /**
-        * @return Factory\Api\Mastodon\Tag
+        * @return Factory\Api\Mastodon\ListEntity
         */
-       public static function mstdnTag()
+       public static function mstdnList()
        {
-               return self::$dice->create(Factory\Api\Mastodon\Tag::class);
+               return self::$dice->create(Factory\Api\Mastodon\ListEntity::class);
        }
 
        /**
-        * @return Factory\Api\Twitter\User
+        * @return Factory\Api\Mastodon\Notification
         */
-       public static function twitterUser()
+       public static function mstdnNotification()
        {
-               return self::$dice->create(Factory\Api\Twitter\User::class);
+               return self::$dice->create(Factory\Api\Mastodon\Notification::class);
        }
 
        /**
-        * @return Factory\Notification\Notification
+        * @return Factory\Api\Twitter\User
         */
-       public static function notification()
+       public static function twitterUser()
        {
-               return self::$dice->create(Factory\Notification\Notification::class);
+               return self::$dice->create(Factory\Api\Twitter\User::class);
        }
 
-       /**
-        * @return Factory\Notification\Introduction
-        */
-       public static function notificationIntro()
+       public static function notificationIntro(): Navigation\Notifications\Factory\Introduction
        {
-               return self::$dice->create(Factory\Notification\Introduction::class);
+               return self::$dice->create(Navigation\Notifications\Factory\Introduction::class);
        }
 
        //
@@ -363,11 +395,19 @@ abstract class DI
        }
 
        /**
-        * @return Model\Storage\IStorage
+        * @return Model\Storage\IWritableStorage
         */
        public static function storage()
        {
-               return self::$dice->create(Model\Storage\IStorage::class);
+               return self::$dice->create(Model\Storage\IWritableStorage::class);
+       }
+
+       /**
+        * @return Model\Log\ParsedLogIterator
+        */
+       public static function parsedLogIterator()
+       {
+               return self::$dice->create(Model\Log\ParsedLogIterator::class);
        }
 
        //
@@ -375,11 +415,11 @@ abstract class DI
        //
 
        /**
-        * @return Network\IHTTPRequest
+        * @return Network\IHTTPClient
         */
-       public static function httpRequest()
+       public static function httpClient()
        {
-               return self::$dice->create(Network\IHTTPRequest::class);
+               return self::$dice->create(Network\IHTTPClient::class);
        }
 
        //
@@ -418,12 +458,29 @@ abstract class DI
                return self::$dice->create(Repository\ProfileField::class);
        }
 
-       /**
-        * @return Repository\Notification
-        */
-       public static function notify()
+       public static function notification(): Navigation\Notifications\Depository\Notification
+       {
+               return self::$dice->create(Navigation\Notifications\Depository\Notification::class);
+       }
+
+       public static function notificationFactory(): Navigation\Notifications\Factory\Notification
+       {
+               return self::$dice->create(Navigation\Notifications\Factory\Notification::class);
+       }
+
+       public static function notify(): Navigation\Notifications\Depository\Notify
+       {
+               return self::$dice->create(Navigation\Notifications\Depository\Notify::class);
+       }
+
+       public static function notifyFactory(): Navigation\Notifications\Factory\Notify
+       {
+               return self::$dice->create(Navigation\Notifications\Factory\Notify::class);
+       }
+
+       public static function formattedNotificationFactory(): Navigation\Notifications\Factory\FormattedNotification
        {
-               return self::$dice->create(Repository\Notification::class);
+               return self::$dice->create(Navigation\Notifications\Factory\FormattedNotification::class);
        }
 
        //