MDL-49329 admin: Archive plugin code before removing it from dirroot
[moodle.git] / lib / classes / update / info.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
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.
8 //
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.
13 //
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/>.
17 /**
18  * Defines classes used for updates.
19  *
20  * @package    core
21  * @copyright  2011 David Mudrak <david@moodle.com>
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
24 namespace core\update;
26 defined('MOODLE_INTERNAL') || die();
28 /**
29  * Defines the structure of objects returned by {@link \core\update\checker::get_update_info()}
30  */
31 class info {
33     /** @var string frankenstyle component name */
34     public $component;
35     /** @var int the available version of the component */
36     public $version;
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 */
42     public $url = null;
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;
48     /**
49      * Creates new instance of the class
50      *
51      * The $info array must provide at least the 'version' value and optionally all other
52      * values to populate the object's properties.
53      *
54      * @param string $name the frankenstyle component name
55      * @param array $info associative array with other properties
56      */
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') {
61                 $this->$k = $v;
62             }
63         }
64     }
65 }