Merge pull request #7870 from nextcloud/remove-core-api

Remove deprecated core API
This commit is contained in:
Morris Jobke 2018-01-15 18:47:34 +01:00 committed by GitHub
commit 2997bb9c69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 3 additions and 338 deletions

View File

@ -40,7 +40,6 @@ return array(
'OCP\\AppFramework\\Http\\Response' => $baseDir . '/lib/public/AppFramework/Http/Response.php',
'OCP\\AppFramework\\Http\\StreamResponse' => $baseDir . '/lib/public/AppFramework/Http/StreamResponse.php',
'OCP\\AppFramework\\Http\\TemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/TemplateResponse.php',
'OCP\\AppFramework\\IApi' => $baseDir . '/lib/public/AppFramework/IApi.php',
'OCP\\AppFramework\\IAppContainer' => $baseDir . '/lib/public/AppFramework/IAppContainer.php',
'OCP\\AppFramework\\Middleware' => $baseDir . '/lib/public/AppFramework/Middleware.php',
'OCP\\AppFramework\\OCSController' => $baseDir . '/lib/public/AppFramework/OCSController.php',
@ -316,7 +315,6 @@ return array(
'OC\\AllConfig' => $baseDir . '/lib/private/AllConfig.php',
'OC\\AppConfig' => $baseDir . '/lib/private/AppConfig.php',
'OC\\AppFramework\\App' => $baseDir . '/lib/private/AppFramework/App.php',
'OC\\AppFramework\\Core\\API' => $baseDir . '/lib/private/AppFramework/Core/API.php',
'OC\\AppFramework\\DependencyInjection\\DIContainer' => $baseDir . '/lib/private/AppFramework/DependencyInjection/DIContainer.php',
'OC\\AppFramework\\Http' => $baseDir . '/lib/private/AppFramework/Http.php',
'OC\\AppFramework\\Http\\Dispatcher' => $baseDir . '/lib/private/AppFramework/Http/Dispatcher.php',

View File

@ -70,7 +70,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\AppFramework\\Http\\Response' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Response.php',
'OCP\\AppFramework\\Http\\StreamResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/StreamResponse.php',
'OCP\\AppFramework\\Http\\TemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/TemplateResponse.php',
'OCP\\AppFramework\\IApi' => __DIR__ . '/../../..' . '/lib/public/AppFramework/IApi.php',
'OCP\\AppFramework\\IAppContainer' => __DIR__ . '/../../..' . '/lib/public/AppFramework/IAppContainer.php',
'OCP\\AppFramework\\Middleware' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Middleware.php',
'OCP\\AppFramework\\OCSController' => __DIR__ . '/../../..' . '/lib/public/AppFramework/OCSController.php',
@ -346,7 +345,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\AllConfig' => __DIR__ . '/../../..' . '/lib/private/AllConfig.php',
'OC\\AppConfig' => __DIR__ . '/../../..' . '/lib/private/AppConfig.php',
'OC\\AppFramework\\App' => __DIR__ . '/../../..' . '/lib/private/AppFramework/App.php',
'OC\\AppFramework\\Core\\API' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Core/API.php',
'OC\\AppFramework\\DependencyInjection\\DIContainer' => __DIR__ . '/../../..' . '/lib/private/AppFramework/DependencyInjection/DIContainer.php',
'OC\\AppFramework\\Http' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Http.php',
'OC\\AppFramework\\Http\\Dispatcher' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Http/Dispatcher.php',

View File

@ -1,188 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Bernhard Posselt <dev@bernhard-posselt.com>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Robin Appelman <robin@icewind.nl>
* @author Robin McCorkell <robin@mccorkell.me.uk>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* 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, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
namespace OC\AppFramework\Core;
use OCP\AppFramework\IApi;
/**
* This is used to wrap the owncloud static api calls into an object to make the
* code better abstractable for use in the dependency injection container
*
* Should you find yourself in need for more methods, simply inherit from this
* class and add your methods
* @deprecated
*/
class API implements IApi{
private $appName;
/**
* constructor
* @param string $appName the name of your application
*/
public function __construct($appName){
$this->appName = $appName;
}
/**
* Gets the userid of the current user
* @return string the user id of the current user
* @deprecated Use \OC::$server->getUserSession()->getUser()->getUID()
*/
public function getUserId(){
return \OCP\User::getUser();
}
/**
* Adds a new javascript file
* @deprecated include javascript and css in template files
* @param string $scriptName the name of the javascript in js/ without the suffix
* @param string $appName the name of the app, defaults to the current one
*/
public function addScript($scriptName, $appName=null){
if($appName === null){
$appName = $this->appName;
}
\OCP\Util::addScript($appName, $scriptName);
}
/**
* Adds a new css file
* @deprecated include javascript and css in template files
* @param string $styleName the name of the css file in css/without the suffix
* @param string $appName the name of the app, defaults to the current one
*/
public function addStyle($styleName, $appName=null){
if($appName === null){
$appName = $this->appName;
}
\OCP\Util::addStyle($appName, $styleName);
}
/**
* @deprecated include javascript and css in template files
* shorthand for addScript for files in the 3rdparty directory
* @param string $name the name of the file without the suffix
*/
public function add3rdPartyScript($name){
\OCP\Util::addScript($this->appName . '/3rdparty', $name);
}
/**
* @deprecated include javascript and css in template files
* shorthand for addStyle for files in the 3rdparty directory
* @param string $name the name of the file without the suffix
*/
public function add3rdPartyStyle($name){
\OCP\Util::addStyle($this->appName . '/3rdparty', $name);
}
/**
* @deprecated communication between apps should happen over built in
* callbacks or interfaces (check the contacts and calendar managers)
* Checks if an app is enabled
* also use \OC::$server->getAppManager()->isEnabledForUser($appName)
* @param string $appName the name of an app
* @return bool true if app is enabled
*/
public function isAppEnabled($appName){
return \OCP\App::isEnabled($appName);
}
/**
* used to return and open a new event source
* @return \OCP\IEventSource a new open EventSource class
* @deprecated Use \OC::$server->createEventSource();
*/
public function openEventSource(){
return \OC::$server->createEventSource();
}
/**
* @deprecated register hooks directly for class that build in hook interfaces
* connects a function to a hook
* @param string $signalClass class name of emitter
* @param string $signalName name of signal
* @param string $slotClass class name of slot
* @param string $slotName name of slot, in another word, this is the
* name of the method that will be called when registered
* signal is emitted.
* @return bool always true
*/
public function connectHook($signalClass, $signalName, $slotClass, $slotName) {
return \OCP\Util::connectHook($signalClass, $signalName, $slotClass, $slotName);
}
/**
* @deprecated implement the emitter interface instead
* Emits a signal. To get data from the slot use references!
* @param string $signalClass class name of emitter
* @param string $signalName name of signal
* @param array $params default: array() array with additional data
* @return bool true if slots exists or false if not
*/
public function emitHook($signalClass, $signalName, $params = array()) {
return \OCP\Util::emitHook($signalClass, $signalName, $params);
}
/**
* clear hooks
* @deprecated clear hooks directly for class that build in hook interfaces
* @param string $signalClass
* @param string $signalName
*/
public function clearHook($signalClass=false, $signalName=false) {
if ($signalClass) {
\OC_Hook::clear($signalClass, $signalName);
}
}
/**
* Tells ownCloud to include a template in the admin overview
* @param string $mainPath the path to the main php file without the php
* suffix, relative to your apps directory! not the template directory
* @param string $appName the name of the app, defaults to the current one
*/
public function registerAdmin($mainPath, $appName=null) {
if($appName === null){
$appName = $this->appName;
}
\OCP\App::registerAdmin($appName, $mainPath);
}
}

View File

@ -36,7 +36,6 @@
namespace OC\AppFramework\DependencyInjection;
use OC;
use OC\AppFramework\Core\API;
use OC\AppFramework\Http;
use OC\AppFramework\Http\Dispatcher;
use OC\AppFramework\Http\Output;
@ -51,7 +50,6 @@ use OC\Core\Middleware\TwoFactorMiddleware;
use OC\RichObjectStrings\Validator;
use OC\ServerContainer;
use OCP\AppFramework\Http\IOutput;
use OCP\AppFramework\IApi;
use OCP\AppFramework\IAppContainer;
use OCP\AppFramework\QueryException;
use OCP\AppFramework\Utility\ITimeFactory;
@ -180,17 +178,6 @@ class DIContainer extends SimpleContainer implements IAppContainer {
);
});
/**
* App Framework APIs
*/
$this->registerService('API', function($c){
$c->query('OCP\\ILogger')->debug(
'Accessing the API class is deprecated! Use the appropriate ' .
'services instead!'
);
return new API($c['AppName']);
});
$this->registerService('Protocol', function($c){
/** @var \OC\Server $server */
$server = $c->query('ServerContainer');
@ -335,16 +322,6 @@ class DIContainer extends SimpleContainer implements IAppContainer {
}
/**
* @deprecated implements only deprecated methods
* @return IApi
*/
public function getCoreApi()
{
return $this->query('API');
}
/**
* @return \OCP\IServerContainer
*/

View File

@ -1,99 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Bernhard Posselt <dev@bernhard-posselt.com>
* @author Jörn Friedrich Dreyer <jfd@butonic.de>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* 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, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
/**
* Public interface of ownCloud for apps to use.
* AppFramework/IApi interface
*/
namespace OCP\AppFramework;
/**
* A few very basic and frequently used API functions are combined in here
* @deprecated 8.0.0
*/
interface IApi {
/**
* Gets the userid of the current user
* @return string the user id of the current user
* @deprecated 8.0.0 Use \OC::$server->getUserSession()->getUser()->getUID()
*/
public function getUserId();
/**
* Adds a new javascript file
* @deprecated 8.0.0 include javascript and css in template files
* @param string $scriptName the name of the javascript in js/ without the suffix
* @param string $appName the name of the app, defaults to the current one
* @return void
*/
public function addScript($scriptName, $appName = null);
/**
* Adds a new css file
* @deprecated 8.0.0 include javascript and css in template files
* @param string $styleName the name of the css file in css/without the suffix
* @param string $appName the name of the app, defaults to the current one
* @return void
*/
public function addStyle($styleName, $appName = null);
/**
* @deprecated 8.0.0 include javascript and css in template files
* shorthand for addScript for files in the 3rdparty directory
* @param string $name the name of the file without the suffix
* @return void
*/
public function add3rdPartyScript($name);
/**
* @deprecated 8.0.0 include javascript and css in template files
* shorthand for addStyle for files in the 3rdparty directory
* @param string $name the name of the file without the suffix
* @return void
*/
public function add3rdPartyStyle($name);
/**
* Checks if an app is enabled
* @deprecated 8.0.0 communication between apps should happen over built in
* callbacks or interfaces (check the contacts and calendar managers)
* Checks if an app is enabled
* also use \OC::$server->getAppManager()->isEnabledForUser($appName)
* @param string $appName the name of an app
* @return bool true if app is enabled
*/
public function isAppEnabled($appName);
}

View File

@ -27,7 +27,6 @@
namespace Test\AppFramework\DependencyInjection;
use OC\AppFramework\Core\API;
use OC\AppFramework\DependencyInjection\DIContainer;
use \OC\AppFramework\Http\Request;
use OCP\AppFramework\QueryException;
@ -49,13 +48,6 @@ class DIContainerTest extends \Test\TestCase {
->setMethods(['isAdminUser'])
->setConstructorArgs(['name'])
->getMock();
$this->api = $this->getMockBuilder(API::class)
->setConstructorArgs(['hi'])
->getMock();
}
public function testProvidesAPI(){
$this->assertTrue(isset($this->container['API']));
}

View File

@ -35,29 +35,16 @@ class TemplateResponseTest extends \Test\TestCase {
*/
private $tpl;
/**
* @var \OCP\AppFramework\IApi
*/
private $api;
protected function setUp() {
parent::setUp();
$this->api = $this->getMockBuilder('OC\AppFramework\Core\API')
->setMethods(['getAppName'])
->setConstructorArgs(['test'])
->getMock();
$this->api->expects($this->any())
->method('getAppName')
->will($this->returnValue('app'));
$this->tpl = new TemplateResponse($this->api, 'home');
$this->tpl = new TemplateResponse('app', 'home');
}
public function testSetParamsConstructor(){
$params = array('hi' => 'yo');
$this->tpl = new TemplateResponse($this->api, 'home', $params);
$this->tpl = new TemplateResponse('app', 'home', $params);
$this->assertEquals(array('hi' => 'yo'), $this->tpl->getParams());
}
@ -65,7 +52,7 @@ class TemplateResponseTest extends \Test\TestCase {
public function testSetRenderAsConstructor(){
$renderAs = 'myrender';
$this->tpl = new TemplateResponse($this->api, 'home', array(), $renderAs);
$this->tpl = new TemplateResponse('app', 'home', array(), $renderAs);
$this->assertEquals($renderAs, $this->tpl->getRenderAs());
}