loading.............
El principal punto que debes entender es:
Para tener un sistema de plugins debes tener todo tu sistema enlazado, conectado o la palabra que se use para "que todo esté unido", de esta forma puedes acceder a cualquier dato del sistema desde cualquier punto.
Con esto te digo por ejemplo esta estructura:
plugins/
plugins/plugin1.php
Entonces tu sistema debe ser capaz de acceder a la información de tu plugin, por ejemplo tu plugin1.php puede ser
Código PHP:
/*
este plugin hace algo a los usuarios
*/
class Plugin_plugin1 extends Plugin
{
public function info()
{
return array('version'=>3,'by'=>'blablabla')
}
public function algo()
{
$db=Db::Singleton();
$db=$this->db;
$users=User::Singleton();
$list= $users->list();
foreach($list as $k=>$v)
{
$email=$v['email'];
//blablablablablabla
}
//etc
}
//usado por ejemplo para instalar este plugin o desinstalar
public function arch()
{
$data=array();
$data['tablas']=array("tabla1"=>"uid int(); blabla ","tabla2"=>"uid INT() blabla")
return $data;
}
}
como vez ahí el plugin es una extensión del sistema con acceso a todas las herramientas de la misma. Creo que es así como se debe hacer.
Tambien existe otro método para registrar/usar un plugin..mmm.. similar a la de wordpress
Código PHP:
/**
* Initialise the internationalisation domain
*/
$is_mailusers_i18n_setup = false;
function mailusers_init_i18n() {
global $is_mailusers_i18n_setup;
if ($is_mailusers_i18n_setup == false) {
load_plugin_textdomain(MAILUSERS_I18N_DOMAIN, 'wp-content/plugins/email-users');
$is_mailusers_i18n_setup = true;
}
}
/**
* Set default values for the options (check against the version)
*/
add_action('activate_email-users/email-users.php','mailusers_plugin_activation');
// etc etc etc
}
Acá se lee el plugin y se registra en la base de datos. La próxima vez que sea este plugin y la base de datos devuelva que ya está registrado (por eso los plugins tienen nombres únicos) se salta estos pasos y se sigue a ejecutar alguna función del plugin.
Creo que aprender un par de patrones, SINGLETON y REGISTRY es todo lo que necesitas:
http://www.phppatterns.com/docs/design/the_registry
saludos.
connection closed.