From 59c6b2dccd6311d4d7fe56482acb55d9256d05d7 Mon Sep 17 00:00:00 2001 From: Meirza Date: Thu, 9 Feb 2023 09:16:13 +0700 Subject: [PATCH] MDL-77342 repository: Added class properties that are not declared. In PHP 8.2 and later, setting a value to an undeclared class property is deprecated and emits a deprecation notice. So we need to add missing class properties that still need to be declared. --- repository/flickr/lib.php | 2 +- repository/flickr_public/lib.php | 25 +++++++++++++++++++ repository/lib.php | 10 ++++++++ repository/merlot/lib.php | 12 +++++++++ .../access_controlled_link_manager_test.php | 3 +++ repository/nextcloud/tests/lib_test.php | 2 +- repository/recent/lib.php | 3 +++ repository/s3/S3.php | 7 ++++++ repository/s3/lib.php | 9 +++++++ repository/s3/readme_moodle.txt | 1 + repository/url/lib.php | 2 ++ repository/webdav/lib.php | 13 ++++++++++ repository/wikimedia/lib.php | 3 +++ repository/wikimedia/wikimedia.php | 12 +++++++++ repository/youtube/lib.php | 6 +++++ 15 files changed, 108 insertions(+), 2 deletions(-) diff --git a/repository/flickr/lib.php b/repository/flickr/lib.php index 27bd603393d..7f33ae18dcf 100644 --- a/repository/flickr/lib.php +++ b/repository/flickr/lib.php @@ -151,7 +151,7 @@ class repository_flickr extends repository { * @return bool */ public function global_search() { - if (empty($this->token)) { + if (empty($this->accesstoken)) { return false; } else { return true; diff --git a/repository/flickr_public/lib.php b/repository/flickr_public/lib.php index 19f3a7178a4..12148837c9c 100644 --- a/repository/flickr_public/lib.php +++ b/repository/flickr_public/lib.php @@ -38,9 +38,34 @@ require_once(__DIR__ . '/image.php'); * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class repository_flickr_public extends repository { + + /** @var phpFlickr Flickr class. */ private $flickr; + + /** @var string Flick photos. */ public $photos; + /** @var string API key. */ + protected $api_key; + + /** @var string email address account. */ + protected $flickr_account; + + /** @var string watermarks usage status. */ + protected $usewatermarks; + + /** @var string session account. */ + protected $sess_account; + + /** @var string session tag. */ + protected $sess_tag; + + /** @var string session text. */ + protected $sess_text; + + /** @var string Flickr user identifier. */ + protected $nsid; + /** * Stores sizes of images to prevent multiple API call */ diff --git a/repository/lib.php b/repository/lib.php index 47c424c6f8f..1a66a017a42 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -531,6 +531,10 @@ abstract class repository implements cacheable_object { public $instance; /** @var string Type of repository (webdav, google_docs, dropbox, ...). Read from $this->get_typename(). */ protected $typename; + /** @var string instance name. */ + public $name; + /** @var bool true if the super construct is called, otherwise false. */ + public $super_called; /** * Constructor @@ -2886,6 +2890,10 @@ final class repository_instance_form extends moodleform { protected $instance; /** @var string repository plugin type */ protected $plugin; + /** @var string repository type ID */ + protected $typeid; + /** @var string repository context ID */ + protected $contextid; /** * Added defaults to moodle form @@ -3008,6 +3016,8 @@ final class repository_type_form extends moodleform { protected $plugin; /** @var string action */ protected $action; + /** @var string plugin name */ + protected $pluginname; /** * Definition of the moodleform diff --git a/repository/merlot/lib.php b/repository/merlot/lib.php index 31df96b4471..3d5e522f488 100644 --- a/repository/merlot/lib.php +++ b/repository/merlot/lib.php @@ -34,6 +34,18 @@ require_once($CFG->dirroot . '/repository/lib.php'); */ class repository_merlot extends repository { + /** @var string merlot keyword. */ + protected $keyword; + + /** @var string merlot author. */ + protected $author; + + /** @var string merlot license key. */ + protected $licensekey; + + /** @var string API URL. */ + protected $api; + public function __construct($repositoryid, $context = SYSCONTEXTID, $options = array()) { parent::__construct($repositoryid, $context, $options); $this->keyword = optional_param('merlot_keyword', '', PARAM_RAW); diff --git a/repository/nextcloud/tests/access_controlled_link_manager_test.php b/repository/nextcloud/tests/access_controlled_link_manager_test.php index 3f15c521d80..4dc409c964e 100644 --- a/repository/nextcloud/tests/access_controlled_link_manager_test.php +++ b/repository/nextcloud/tests/access_controlled_link_manager_test.php @@ -46,6 +46,9 @@ class access_controlled_link_manager_test extends \advanced_testcase { /** @var null|\core\oauth2\issuer which belongs to the repository_nextcloud object. */ public $issuer = null; + /** @var string system account username. */ + public $systemaccountusername; + /** * SetUp to create an repository instance. */ diff --git a/repository/nextcloud/tests/lib_test.php b/repository/nextcloud/tests/lib_test.php index 8f7f0b99f05..c8f66937a90 100644 --- a/repository/nextcloud/tests/lib_test.php +++ b/repository/nextcloud/tests/lib_test.php @@ -703,7 +703,7 @@ JSON; array('success' => 201))); $this->repo->expects($this->once())->method('delete_share_dataowner_sysaccount')->willReturn( array('statuscode' => array('success' => 100))); - $filereturn = array(); + $filereturn = new \stdClass(); $filereturn->link = 'some/fullpath' . 'some/target/path'; $filereturn->name = 'mysource'; $filereturn->usesystem = true; diff --git a/repository/recent/lib.php b/repository/recent/lib.php index adeaa8e5b49..c5513079d60 100644 --- a/repository/recent/lib.php +++ b/repository/recent/lib.php @@ -44,6 +44,9 @@ class repository_recent extends repository { /** @var int only retrieve files within the time limit */ protected $timelimit; + /** @var int recent files number configuration. */ + protected $number; + /** * Initialize recent plugin * @param int $repositoryid diff --git a/repository/s3/S3.php b/repository/s3/S3.php index 7cca16248da..5a6462a213b 100644 --- a/repository/s3/S3.php +++ b/repository/s3/S3.php @@ -2020,6 +2020,13 @@ final class S3Request */ public $response; + /** + * Filename or resource to write to. + * + * @var string + * @access public + */ + public $file; /** * Constructor diff --git a/repository/s3/lib.php b/repository/s3/lib.php index 5b721dae9cf..88b0e1b55fb 100644 --- a/repository/s3/lib.php +++ b/repository/s3/lib.php @@ -41,6 +41,15 @@ if (!defined('CURL_SSLVERSION_TLSv1')) { */ class repository_s3 extends repository { + /** @var string access key. */ + protected $access_key; + /** @var string secret key. */ + protected $secret_key; + /** @var string endpoint URL. */ + protected $endpoint; + /** @var S3 S3 class. */ + protected $s; + /** * Constructor * @param int $repositoryid diff --git a/repository/s3/readme_moodle.txt b/repository/s3/readme_moodle.txt index daf124863ee..c197eaef003 100644 --- a/repository/s3/readme_moodle.txt +++ b/repository/s3/readme_moodle.txt @@ -13,3 +13,4 @@ upstream. Remove the local changes if so) MDL-67031 php74 compliance. Change curly to square braces. MDL-73523 php80 compliance. Deprecated openssl_free_key() use (https://github.com/tpyo/amazon-s3-php-class/issues/178) +MDL-77342 PHP 8.2 compliance. Add property $file in class S3Request. \ No newline at end of file diff --git a/repository/url/lib.php b/repository/url/lib.php index a65a7fc5451..4344e162641 100644 --- a/repository/url/lib.php +++ b/repository/url/lib.php @@ -41,6 +41,8 @@ class repository_url extends repository { var $processedfiles = array(); /** @var int Recursion counter. */ var $recursioncounter = 0; + /** @var string file URL. */ + public $file_url; /** * @param int $repositoryid diff --git a/repository/webdav/lib.php b/repository/webdav/lib.php index 8c0abbe3d14..e5dcf675264 100644 --- a/repository/webdav/lib.php +++ b/repository/webdav/lib.php @@ -35,6 +35,19 @@ require_once($CFG->libdir.'/webdavlib.php'); * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class repository_webdav extends repository { + + /** @var string webdav type. */ + protected $webdav_type; + + /** @var mixed webdav port. */ + protected $webdav_port; + + /** @var string webdav host. */ + protected $webdav_host; + + /** @var webdav_client webdav client. */ + protected $dav; + public function __construct($repositoryid, $context = SYSCONTEXTID, $options = array()) { parent::__construct($repositoryid, $context, $options); // set up webdav client diff --git a/repository/wikimedia/lib.php b/repository/wikimedia/lib.php index 9d155975bde..c854b0e33c7 100644 --- a/repository/wikimedia/lib.php +++ b/repository/wikimedia/lib.php @@ -38,6 +38,9 @@ require_once(__DIR__ . '/wikimedia.php'); class repository_wikimedia extends repository { + /** @var string keyword search. */ + protected $keyword; + /** * Returns maximum width for images * diff --git a/repository/wikimedia/wikimedia.php b/repository/wikimedia/wikimedia.php index 501f8b1817d..9194c485838 100644 --- a/repository/wikimedia/wikimedia.php +++ b/repository/wikimedia/wikimedia.php @@ -32,6 +32,18 @@ class wikimedia { private $_conn = null; private $_param = array(); + /** @var string API URL. */ + protected $api; + + /** @var string user ID. */ + protected $userid; + + /** @var string username. */ + protected $username; + + /** @var string token key. */ + protected $token; + public function __construct($url = '') { if (empty($url)) { $this->api = 'https://commons.wikimedia.org/w/api.php'; diff --git a/repository/youtube/lib.php b/repository/youtube/lib.php index afe8f2b8094..e0e830b9e43 100644 --- a/repository/youtube/lib.php +++ b/repository/youtube/lib.php @@ -55,6 +55,12 @@ class repository_youtube extends repository { */ private $service = null; + /** + * Search keyword text. + * @var string + */ + protected $keyword; + /** * Youtube plugin constructor * @param int $repositoryid