MDL-49329 admin: Archive plugin code before removing it from dirroot
[moodle.git] / lib / classes / update / info.php
CommitLineData
e87214bd
PS
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/>.
16
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 */
24namespace core\update;
25
26defined('MOODLE_INTERNAL') || die();
27
28/**
29 * Defines the structure of objects returned by {@link \core\update\checker::get_update_info()}
30 */
31class info {
32
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;
47
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}