<?php
//!
$privado='algo secreto';
//!
$dependientedelsite='depende del site';
echo $dependientedelsite."\n";
?>
Entonces creamos el instalador:
php mkInstaller.php -o out instdir/mi_inst.php mio.php
Nota: Si no tienes acceso a línea de comandos, coloca mkInstaller.php en un tu servidor web y cárgalo con tu navegador.Se han creado el directorio instdir y el fichero _mkInstaller.php. El instalador está en el directorio instdir y se llama mi_inst.php. Lo hemos puesto en un directorio diferente para poder probarlo, pues si no sobreescribiría los ficheros originales al probarlo.
http://nombre_de_tu_servidor/...../instdir/mi_inst.phpPor ahora no pulses el botón de Instalar.
//!!
$defvars=array (
'd206c1d1' =>
array (
'va' => 'privado',
'df' => '""',
'ty' => text,
'st' => true,
'sz' => 2,
'lg' =>
array (
'es' => 'Introduzca el valor de la variable <i>private</i>',
),
),
'68ec8746' =>
array (
'va' => 'dependientedelsite',
'df' => '""',
'ty' => text,
'st' => true,
'sz' => 2,
'lg' =>
array (
'es' => 'Introduzca el valor de la variable <i>sitedep</i>',
),
),
);
$defbdds=array (
);
$myopt=array (
'big' => false,
'out' => 'instdir/mi_inst.php',
);
$svbufs=array (
'mio.php' =>
array (
'p' => true,
),
);
Observa que _mkInstaller.php contiene un largo comentario que puede usarse como plantilla para añadir funcionalidad.
Cambia text por 'password' para el item ty de la variable
$privado.
Y vuelve a ejecutar:
php mkInstaller.phpRecarga el instalador myinst.php con tu navegador y verás que la caja para $privado es de tipo 'password'.
php mkInstaller.php -Ilo que muestra el contenido del instalador construido.
Edita una página web y coloca la marca {CONT} donde quieras que el instalador escriba su <iframe>. Llama a la página es-mi.html, pues es para el idioma español. El único requisito es que tenga definida una clase CSS de nombre ifr para el <iframe>. Por ejemplo:
<html> <style> .ifr { width: 100%; height: 100%; border: none; } </style> <h2 style="text-align: center">My installer.</h2> <h2 style="text-align: center">Mi instalador.</h2> {CONT} Hecho por mi. </body> </html>Ejecuta entonces:
php mkInstaller.php -o tpl es-mi.htmly recarga mi_inst.php para ver la nueva página.
php mkInstaller.phppara reconstruir el instalador.
mysql -p -u root create database mydb; use mydb; create table one ( name varchar(255) NOT NULL default '' ) type=MyISAM; create table two ( value int(11) NOT NULL default '0' ) type=MyISAM; insert into two (value) values (222); quitEdita mio.php:
<?php
//!
$private='some secret';
//!
$sitedep='depends on site';
echo $sitedep."\n";
//!
$dbname='mydb';
//!
$dbhost='localhost';
//!
$dbuser='root';
//!
$dbpwd='my current passwd';
?>
php mkInstaller.php -d 'dbhost==dbuser==dbpwd==dbname'Si los valores especificados para $dbuser o $dbpwd son incorrectos, obtendrás un error. Si, observa como se copian las tablas en el instalador. Si quieres alterar este comportamiento, edita _mkInstaller.php y cambia $defbdds a (copy/paste):
$defbdds=array(
'mydbdef'=>array(
'ty'=>'mysql',
'vho'=>'dbhost',
'vus'=>'dbuser',
'vpw'=>'dbpwd',
'mydb'=>array(
'vdb'=>'dbname',
'tc' => array(), // all the tables
'tp' => array('two' => array(), ),
),
),
);
php mkInstaller.phpEl fichero _mkInstaller.php se ha actualizado. Edítalo y verás que tc contiene la lista actual de tablas de tu base de datos.
El instalador está listo, cárgalo con tu navegador, especifica un nombre de base de datos diferente. Verifica que la base de datos se crea y se copian los datos de la tabla two. Más información aquí.
Escenario: tienes un(os) script(s) php que quieres distribuir y contiene(n) datos secretos o dependientes de la instalación. Además manejan bases de datos mysql o postgres. Los pasos para construir el instalador son:
//!La línea que contiene mensaje es opcional y establece el mensaje que mostrará en el idioma id para solicitar el valor al instalar.
// %id%: mensaje
$variable=valor_dependiente_de_instalación;
php mkInstaller.php -o out prueba/fichero_instalador.php f1.php f2.inc -- estilo.css foto.jpg
php mkInstaller.php -d "host==usuario==contraseña==basededatos=tipo"donde tipo es mysql o pgsql y el restos de parámetros son, o bien valores fijos, que deben ir precedidos de ":", o bien nombres de variables instalables, por ejemplo:
php mkInstaller.php -d ":localhost==misuer==mipasswd==:nombrebase"Usará localhost y nombrebase como datos fijos y miuser y mipasswd son nombres de variables. En el ejemplo se sobreentinde mysql4.