]> git.mxchange.org Git - friendica.git/blobdiff - src/DI.php
Better handling of displaying peertube videos
[friendica.git] / src / DI.php
index 3034bd971c6c371f06a905d342b2a6be6565710f..4645ea252db915cfe171c8cccad5771fa4f8c18d 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/**
+ * @copyright Copyright (C) 2010-2021, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica;
 
@@ -20,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
        //
@@ -44,14 +74,6 @@ abstract class DI
        // "App" namespace instances
        //
 
-       /**
-        * @return App\Authentication
-        */
-       public static function auth()
-       {
-               return self::$dice->create(App\Authentication::class);
-       }
-
        /**
         * @return App\Arguments
         */
@@ -141,7 +163,7 @@ abstract class DI
        }
 
        /**
-        * @return \Friendica\Core\PConfig\IPConfig
+        * @return Core\PConfig\IPConfig
         */
        public static function pConfig()
        {
@@ -221,31 +243,127 @@ abstract class DI
        //
 
        /**
-        * @return Factory\Mastodon\Account
+        * @return Factory\Api\Mastodon\Account
         */
        public static function mstdnAccount()
        {
-               return self::$dice->create(Factory\Mastodon\Account::class);
+               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
+        */
+       public static function mstdnAttachment()
+       {
+               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
+        */
+       public static function mstdnEmoji()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Emoji::class);
        }
 
        /**
-        * @return Factory\Mastodon\FollowRequest
+        * @return Factory\Api\Mastodon\Error
+        */
+       public static function mstdnError()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Error::class);
+       }
+
+       /**
+        * @return Factory\Api\Mastodon\FollowRequest
         */
        public static function mstdnFollowRequest()
        {
-               return self::$dice->create(Factory\Mastodon\FollowRequest::class);
+               return self::$dice->create(Factory\Api\Mastodon\FollowRequest::class);
        }
 
        /**
-        * @return Factory\Mastodon\Relationship
+        * @return Factory\Api\Mastodon\Relationship
         */
        public static function mstdnRelationship()
        {
-               return self::$dice->create(Factory\Mastodon\Relationship::class);
+               return self::$dice->create(Factory\Api\Mastodon\Relationship::class);
+       }
+
+       /**
+        * @return Factory\Api\Mastodon\Status
+        */
+       public static function mstdnStatus()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Status::class);
        }
 
        /**
-        * @return \Friendica\Factory\Notification\Notification
+        * @return Factory\Api\Mastodon\ScheduledStatus
+        */
+       public static function mstdnScheduledStatus()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\ScheduledStatus::class);
+       }
+
+       /**
+        * @return Factory\Api\Mastodon\Subscription
+        */
+       public static function mstdnSubscription()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Subscription::class);
+       }
+
+       /**
+        * @return Factory\Api\Mastodon\ListEntity
+        */
+       public static function mstdnList()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\ListEntity::class);
+       }
+
+       /**
+        * @return Factory\Api\Mastodon\Notification
+        */
+       public static function mstdnNotification()
+       {
+               return self::$dice->create(Factory\Api\Mastodon\Notification::class);
+       }
+
+       /**
+        * @return Factory\Api\Twitter\User
+        */
+       public static function twitterUser()
+       {
+               return self::$dice->create(Factory\Api\Twitter\User::class);
+       }
+
+       /**
+        * @return Factory\Notification\Notification
         */
        public static function notification()
        {
@@ -253,7 +371,7 @@ abstract class DI
        }
 
        /**
-        * @return \Friendica\Factory\Notification\Introduction
+        * @return Factory\Notification\Introduction
         */
        public static function notificationIntro()
        {
@@ -263,6 +381,13 @@ abstract class DI
        //
        // "Model" namespace instances
        //
+       /**
+        * @return Model\Process
+        */
+       public static function modelProcess()
+       {
+               return self::$dice->create(Model\Process::class);
+       }
 
        /**
         * @return Model\User\Cookie
@@ -273,25 +398,45 @@ abstract class DI
        }
 
        /**
-        * @return Repository\Notify
+        * @return Model\Storage\IWritableStorage
         */
-       public static function notify()
+       public static function storage()
        {
-               return self::$dice->create(Repository\Notify::class);
+               return self::$dice->create(Model\Storage\IWritableStorage::class);
        }
 
        /**
-        * @return Model\Storage\IStorage
+        * @return Model\Log\ParsedLogIterator
         */
-       public static function storage()
+       public static function parsedLogIterator()
+       {
+               return self::$dice->create(Model\Log\ParsedLogIterator::class);
+       }
+
+       //
+       // "Network" namespace
+       //
+
+       /**
+        * @return Network\IHTTPClient
+        */
+       public static function httpClient()
        {
-               return self::$dice->create(Model\Storage\IStorage::class);
+               return self::$dice->create(Network\IHTTPClient::class);
        }
 
        //
        // "Repository" namespace
        //
 
+       /**
+        * @return Repository\FSuggest;
+        */
+       public static function fsuggest()
+       {
+               return self::$dice->create(Repository\FSuggest::class);
+       }
+
        /**
         * @return Repository\Introduction
         */
@@ -316,6 +461,14 @@ abstract class DI
                return self::$dice->create(Repository\ProfileField::class);
        }
 
+       /**
+        * @return Repository\Notification
+        */
+       public static function notify()
+       {
+               return self::$dice->create(Repository\Notification::class);
+       }
+
        //
        // "Protocol" namespace instances
        //
@@ -328,6 +481,18 @@ abstract class DI
                return self::$dice->create(Protocol\Activity::class);
        }
 
+       //
+       // "Security" namespace instances
+       //
+
+       /**
+        * @return \Friendica\Security\Authentication
+        */
+       public static function auth()
+       {
+               return self::$dice->create(Security\Authentication::class);
+       }
+
        //
        // "Util" namespace instances
        //
@@ -340,6 +505,14 @@ abstract class DI
                return self::$dice->create(Util\ACLFormatter::class);
        }
 
+       /**
+        * @return string
+        */
+       public static function basePath()
+       {
+               return self::$dice->create('$basepath');
+       }
+
        /**
         * @return Util\DateTimeFormat
         */
@@ -363,4 +536,12 @@ abstract class DI
        {
                return self::$dice->create(Util\Profiler::class);
        }
+
+       /**
+        * @return Util\Emailer
+        */
+       public static function emailer()
+       {
+               return self::$dice->create(Util\Emailer::class);
+       }
 }