2 // This file is part of Moodle - http://moodle.org/
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
18 * Defines classes used for updates.
21 * @copyright 2011 David Mudrak <david@moodle.com>
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 namespace core\update;
26 defined('MOODLE_INTERNAL') || die();
29 * Defines the structure of objects returned by {@link \core\update\checker::get_update_info()}
33 /** @var string frankenstyle component name */
35 /** @var int the available version of the component */
37 /** @var string|null optional release name */
38 public $release = null;
39 /** @var int|null optional maturity info, eg {@link MATURITY_STABLE} */
40 public $maturity = null;
41 /** @var string|null optional URL of a page with more info about the update */
43 /** @var string|null optional URL of a ZIP package that can be downloaded and installed */
44 public $download = null;
45 /** @var string|null of self::download is set, then this must be the MD5 hash of the ZIP */
46 public $downloadmd5 = null;
49 * Creates new instance of the class
51 * The $info array must provide at least the 'version' value and optionally all other
52 * values to populate the object's properties.
54 * @param string $name the frankenstyle component name
55 * @param array $info associative array with other properties
57 public function __construct($name, array $info) {
58 $this->component = $name;
59 foreach ($info as $k => $v) {
60 if (property_exists('\core\update\info', $k) and $k != 'component') {