3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
13 * The extension manager handles installing, disabling enabling, and
14 * uninstalling extensions.
17 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 class CRM_Extension_Manager_Base
implements CRM_Extension_Manager_Interface
{
22 * Whether to automatically uninstall and install during 'replace'.
29 * @param bool $autoReplace
30 * Whether to automatically uninstall and install during 'replace'.
32 public function __construct($autoReplace = FALSE) {
33 $this->autoReplace
= $autoReplace;
39 * @param CRM_Extension_Info $info
41 public function onPreInstall(CRM_Extension_Info
$info) {
47 * @param CRM_Extension_Info $info
49 public function onPostInstall(CRM_Extension_Info
$info) {
55 * @param CRM_Extension_Info $info
57 public function onPostPostInstall(CRM_Extension_Info
$info) {
63 * @param CRM_Extension_Info $info
65 public function onPreEnable(CRM_Extension_Info
$info) {
71 * @param CRM_Extension_Info $info
73 public function onPostEnable(CRM_Extension_Info
$info) {
79 * @param CRM_Extension_Info $info
81 public function onPreDisable(CRM_Extension_Info
$info) {
87 * @param CRM_Extension_Info $info
89 public function onPostDisable(CRM_Extension_Info
$info) {
95 * @param CRM_Extension_Info $info
97 public function onPreUninstall(CRM_Extension_Info
$info) {
103 * @param CRM_Extension_Info $info
105 public function onPostUninstall(CRM_Extension_Info
$info) {
111 * @param CRM_Extension_Info $oldInfo
112 * @param CRM_Extension_Info $newInfo
114 public function onPreReplace(CRM_Extension_Info
$oldInfo, CRM_Extension_Info
$newInfo) {
115 if ($this->autoReplace
) {
116 $this->onPreUninstall($oldInfo);
117 $this->onPostUninstall($oldInfo);
124 * @param CRM_Extension_Info $oldInfo
125 * @param CRM_Extension_Info $newInfo
127 public function onPostReplace(CRM_Extension_Info
$oldInfo, CRM_Extension_Info
$newInfo) {
128 if ($this->autoReplace
) {
129 $this->onPreInstall($oldInfo);
130 $this->onPostInstall($oldInfo);