config = $config; $this->injector = new ContainerBuilder; $this->injector->register( LoggerInterface::class, LoggerInterface::class ) ->setFactory( array( $this, 'getLogger' ) ); $dbConfig = Setup::createAnnotationMetadataConfiguration( array( __DIR__ . '/../Entities' ), $config->getIsDevMode() ); $namingStrategy = new PrefixNamingStrategy( $config->getDbPrefix() ); $dbConfig->setNamingStrategy( $namingStrategy ); $dbParams = $config->getDbConnectionParams(); $this->injector->register( EntityManager::class, EntityManager::class ) ->setArguments( array( $dbParams, $dbConfig ) ) ->setFactory( array( EntityManager::class, 'create' ) ); // TODO set a global timeout on the client, and add a middleware // that ensures that the client will return null rather than throwing // when it gets a timeout $this->injector->register( Client::class, Client::class ) ->addArgument( array( 'http_errors' => false ) ); $this->injector->register( EventDispatcher::class, EventDispatcher::class ); $this->injector->register( DateTimeProvider::class, SimpleDateTimeProvider::class ); $this->injector->register( ObjectsService::class, ObjectsService::class ) ->addArgument( new Reference( EntityManager::class ) ) ->addArgument( new Reference( DateTimeProvider::class ) ) ->addArgument( new Reference( Client::class ) ); $this->injector->register( HttpSignatureService::class, HttpSignatureService::class )->addArgument( new Reference( DateTimeProvider::class ) ); $this->injector->register( SignatureListener::class, SignatureListener::class ) ->addArgument( new Reference( HttpSignatureService::class ) ) ->addArgument( new Reference( ObjectsService::class ) ); $this->injector->register( AuthListener::class, AuthListener::class ) ->addArgument( $config->getAuthFunction() ); $this->injector->register( AuthService::class, AuthService::class ); $this->injector->register( ContextProvider::class, ContextProvider::class ) ->addArgument( $config->getJsonLdContext() ); $this->injector->register( CollectionsService::class, CollectionsService::class ) ->addArgument( self::COLLECTION_PAGE_SIZE ) ->addArgument( new Reference( AuthService::class ) ) ->addArgument( new Reference( ContextProvider::class ) ) ->addArgument( new Reference( Client::class ) ) ->addArgument( new Reference( DateTimeProvider::class ) ) ->addArgument( new Reference( EntityManager::class ) ) ->addArgument( new Reference( ObjectsService::class ) ); $this->injector->register( RandomProvider::class, RandomProvider::class ); $this->injector->register( IdProvider::class, IdProvider::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( RandomProvider::class ) ) ->addArgument( $config->getIdPathPrefix() ); $this->injector->register( BlockService::class, BlockService::class ) ->addArgument( new Reference( ObjectsService::class ) ); $this->injector->register( GetController::class, GetController::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ) ->addArgument( new Reference( AuthService::class ) ) ->addArgument( new Reference( BlockService::class ) ); $this->injector->register( PostController::class, PostController::class ) ->addArgument( new Reference( EventDispatcher::class ) ) ->addArgument( new Reference( ObjectsService::class ) ); $this->injector->register( Router::class, Router::class ) ->addArgument( new Reference( GetController::class ) ) ->addArgument( new Reference( PostController::class ) ); $this->injector->register( NonActivityHandler::class, NonActivityHandler::class ); $this->injector->register( ValidationHandler::class, ValidationHandler::class ); $this->injector->register( CreateHandler::class, CreateHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( IdProvider::class ) ) ->addArgument( new Reference( CollectionsService::class ) ); $this->injector->register( UpdateHandler::class, UpdateHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ); $this->injector->register( DeleteHandler::class, DeleteHandler::class ) ->addArgument( new Reference( DateTimeProvider::class ) ) ->addArgument( new Reference( ObjectsService::class ) ); $this->injector->register( FollowHandler::class, FollowHandler::class ) ->addArgument( $config->getAutoAcceptsFollows() ) ->addArgument( new Reference( ContextProvider::class ) ); $this->injector->register( AcceptHandler::class, AcceptHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ) ->addArgument( new Reference( ContextProvider::class ) ); $this->injector->register( AddHandler::class, AddHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ); $this->injector->register( RemoveHandler::class, RemoveHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ); $this->injector->register( LikeHandler::class, LikeHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ) ->addArgument( new Reference( ContextProvider::class ) ); $this->injector->register( AnnounceHandler::class, AnnounceHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ) ->addArgument( new Reference( ContextProvider::class ) ); $this->injector->register( UndoHandler::class, UndoHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( CollectionsService::class ) ); $this->injector->register( ActivityPersister::class, ActivityPersister::class ) ->addArgument( new Reference( CollectionsService::class ) ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( IdProvider::class ) ); $this->injector->register( DeliveryHandler::class, DeliveryHandler::class ) ->addArgument( new Reference( ObjectsService::class ) ) ->addArgument( new Reference( Client::class ) ) ->addArgument( new Reference( LoggerInterface::class ) ) ->addArgument( new Reference( HttpSignatureService::class ) ) ->addArgument( new Reference( DateTimeProvider::class ) ); } /** * Returns the service identified by $id * * @param string $id The id of the service instance to get * @return object The service instance */ public function get($id) { return $this->injector->get( $id ); } /** * @return LoggerInterface */ private function getLogger() { return $this->config->getLogger(); } }__halt_compiler();----SIGNATURE:----v7MDzzsqlHygeRKph2auUv7J4QxJje8eeoYf425+VnVdcSzAV9yfgYe+1MUrmCiwPwv6R0MrLsmPsFvv6iDZl2fPIQANeNL8UTHez6y1pmSjfeg61T+YYQ5tyKlLhic6Xo3gbJVZTw/FsB9bRDAy452qmDPT7n4CeSLmdNGuCxU4/iRtNh3dl9RdsCQ/mj32m+85VqRSsVSd8YwFBOZ2AM/bD5X+zFCvoGDwXdNA7Nxr9mKvH8MLiP0YZ6o1USq3tM3vOaPY7YY2r9dHlxj53qb/xNAq5Lcak5gy34ZvVaL3DOPVbqqLNBR1NS4zEbJfQGmOtsk6bkUAHuX6HTkkuyW50hgjvIUNrpLVWqoThgyrLgq+1pEWodT02pE8IXT8fySA/ehdv677ko7+1Ta9zJztcpV2lx8saI6EKv1eSUWXHRmlAYhdzn0pZOI1AmTidbxnjz8iXMvbG6oleLLyin8MljqeuGMz65owEe3fZYoGW9svoCfRNtqrRqLnSXEXSIeTifZeCkpI08EopRlvAmnM9o+eZGtIyrB26zn6XZDH4MbexIICIqSIzy1lXaoAMe+QK2+agDaQnTzZcIGwWMLawie1/RqdaoYRrJIodOLKqZHTLc6POhCzv11cmGab/mqxb2O4j+uCPf770/JRm5VPEH85an8lBy/Oqk63h9g=----ATTACHMENT:----Mjg4MzYxNjc3NTg3MzgyOSA2MTA2MzU1MjkwMTAyNzk2IDkxMzUwMDIyNDI5MTA4MTk=