Restructure the module lifecycle.

Install: <module>_installer::install() is called, any necessary tables
are created.

Activate: <module>_installer::activate() is called.  Module
controllers are routable, helpers are accessible, etc.  The module is
in use.

Deactivate: <module>_installer::deactivate() is called.  Module code
is not accessible or routable.  Module is *not* in use, but its tables
are still around.

Uninstall: <module>_installer::uninstall() is called.  Module is
completely removed from the database.

Admin > Modules will install and activate modules, but will only
deactivate (will NOT uninstall modules).
This commit is contained in:
Bharat Mediratta
2009-05-26 05:28:59 +00:00
parent 2966289b14
commit 7aed923908
37 changed files with 314 additions and 201 deletions
@@ -90,8 +90,8 @@ class Gallery_Unit_Test_Controller extends Controller {
@mkdir('test/var/logs', 0777, true);
// Reset our caches
module::$module_names = array();
module::$modules = array();
module::$active = array();
module::$var_cache = array();
$db->clear_cache();
@@ -100,6 +100,7 @@ class Gallery_Unit_Test_Controller extends Controller {
core_installer::install(true);
module::load_modules();
module::install("user");
module::activate("user");
$modules = array();
foreach (glob(MODPATH . "*/helpers/*_installer.php") as $file) {
$module_name = basename(dirname(dirname($file)));
@@ -107,6 +108,7 @@ class Gallery_Unit_Test_Controller extends Controller {
continue;
}
module::install($module_name);
module::activate($module_name);
}
$filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null;