Amigable es un mini-framework para programar aplicaciones y sitios web en PHP >= 4.3
Esta diseñado para trabajar con clean_urls fácilmente Contiene un gestor para base de datos, es seguro y flexible Además de librerías básicas: paginado, texto, html, curl, ftp, etc. Como instalar el
... [More]
frameworkLa instalación es muy similar a la de cualquier otra librería para PHP, solo basta descomprimir el archivo del framework en alguna carpeta accesible para nuestros scripts
Dicha ubicación puede ser configurada para el entorno de PHP a través de la opción include_path en el php.ini, o bien, usando ini_set()
php.ini
; UNIX: "/path1:/path2"
;include_path = ".:/usr/share/php"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"test.php
En resumen, se recomienda ubicar el framework fuera de nuestro sitio web y configurar el php.ini (tal ves hacerlo vía PHP sea mas sencillo, pero puede resultar inseguro)
Modo de usoUna ves podamos incluirlo en nuestros scripts, el siguiente paso es aprender a crear un índice de aplicación o bien, un script controlador
/sandbox/test.php
__FILE__));
// inicializar el sistema
run(array(
//'global_permissions' => 0777,
'application_index' => __FILE__,
//'temporary_files' => '/tmp',
//'allowed_chars' => 'a-zA-Z0-9/.',
//'dsn_string' => 'mysql://root@localhost/test',
//'timezone' => 'America/Mexico_City',
//'charset' => 'UTF-8',
//'rewrite' => FALSE,
//'suffix' => '.do',
//'cache' => 'php'
)));
echo link_to('foo'); # /sandbox/test.php/foo/
option('rewrite', TRUE);
option('suffix', '.doo');
echo link_to('foo'); # /sandbox/foo.doo
?>Solo basta incluirlo, configurar y ejecutar el framework con la función run() para comenzar a utilizar sus funcionalidades. Además, no es obtrusivo con nuestro propio estilo de programación
Todas las opciones, excepto rewrite y suffix, no pueden ser modificadas en tiempo de ejecución
Base de datosEl inicializar la librería para manejar nuestra base de datos requiere de la opción dsn_string en la configuración del framework, antes o durante la llamada a la función run()
'scheme=sqlite;path=/tmp/test.db'
));
// ejemplos de uso
$id = db_insert('tabla', array('columna' => 'valor'));
/* INSERT INTO tabla(columna) VALUES('valor') */
$id = db_update('tabla', array('columna' => 'valor'));
/* UPDATE tabla SET columna = 'valor' */
$result = db_select('tabla', ALL);
/* SELECT * FROM tabla */
$rows = db_fetch_all($result);
$one = db_fetch($result, AS_OBJECT);
var_dump($result, $rows, $one);
?>Adaptadores disponibles: mysql, mysqli, sqlite, pgsql
La conexión se hace de manera automática, siempre y cuando se configure correctamente el DSN de conexión a la base de datos
Es importante decir que cada operación hace limpieza automática de las variables, por lo que no es necesario hacerlo manualmente
Configurar mod_rewriteSolo tenemos que copiar el archivo htaccess.txt de la carpeta del framework a la ubicación de nuestros documentos web, en el mismo lugar del índice de aplicación
Renombramos con un editor el archivo a .htaccess, cambiamos las palabras y por los valores que hagan falta y des comentamos las lineas necesarias, ej. /sandbox/.htaccess
ErrorDocument 404 /sandbox/test.php
RewriteEngine On
RewriteBase /sandbox
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ test.php/$1 [PT,L]También se debe configurar el entorno usando la instrucción option('rewrite')
Esto es obligatorio si se quiere hacer uso de urls amigables dentro de nuestra aplicación, aunque se recomienda deshabilitarlo localmente mientras se desarrolla
Acerca de clean_urlsEs muy sencillo trabajar con urls amigables, solo necesitamos recordar el concepto de I/O para una aplicación o sitio web, ej. /index.php?foo=bar&does=13
De esta manera ya entendemos la entrada habitual a una parte de nuestra aplicación. Al emplear urls amigables en lugar de variables necesitaremos usar segmentos, ej. /index.php/foo/bar/does/13
__FILE__));
// localmente: off
if ( ! is_local()) option('rewrite', TRUE);
// ruta principal
dispatch('*', 'ejemplo');
function ejemplo($modulo = 'default', $accion = 'index', $id = 0)
{
// modulo a cargar
$mod_file = PATH.'/modules/'.$modulo.EXT;
if ( ! is_file($mod_file)) echo 'El modulo no existe: ' . $modulo;
else
{
// lo incluimos
include_once $mod_file;
// acción a ejecutar
$callback = $modulo . '_' . $accion;
if ( ! function_exists($callback)) echo 'La acción no existe: ' . $accion;
else
{
// ejecutamos e imprimimos los resultados
echo 'Hola mundo!';
echo call_user_func($callback, $id);
echo '';
}
}
}
?>Independientemente de la configuración de mod_rewrite la lógica de los segmentos jamás se ve afectada, inclusive es recomendable utilizar solo segmentos para operaciones visibles e indexables
Como se puede observar el framework no ejecuta nada por si cuenta, obviamente hay que implementar la forma en que vamos a ejecutar nuestros scripts
DocumentaciónLa mayoría del código viene documentado, se recomienda configurar la carpeta del framework también en algún editor que permita calltips.
Adicionalmente se puede obtener una copia personalizada de la documentación utilizando herramientas compatibles con phpdoc (http://www.phpdoc.org/)
En un sistema Ubuntu fácilmente se puede conseguir con una instrucción similar:
$ sudo phpdoc --directory /usr/share/php/Amigable --target ~/refsNOTAS
La única finalidad de usar urls amigables es la de proveer información en forma de segmentos para implementar cualquier tipo de entrada que se plantee para nuestra aplicación
El hecho de usar mod_rewrite no hace que nuestras urls cambien mágicamente, para ello siempre hay que generar nuestros enlaces usando la función link_to()
Recuerda que utilizar un framework es como emplear una caja de herramientas: no te hace el trabajo, te lo facilita [Less]