0

Flash como framework de desarrollo para aplicaciones multimedia interactivas

Posted by andnovar on Jul 3, 2009 in Uncategorized

Etiquetas: , ,

 
0

Problemas frecuentes en symfony

Posted by andnovar on Jun 18, 2009 in Uncategorized

¿Como hago para direccionar desde un modulo en una aplicacion a un modulo de otra aplicacion en symfony 1.2?

Dado que en versiones anteriores no lo he probado, no puedo asegurar que este método funcione en versiones anteriores a 1.2, bueno, ahora si empecemos:

  1. Copiar este codigo dentro de la clase TuAppOrigenConfiguration.class.php

protected $enrutamientoFrontend = null;

public function generaUrlFrontend($nombre, $parametros = array())
{
sfConfig::add(array(‘sf_webroot_dir’ => ‘/nombreProyecto/web’));

$ruta = ‘http://’.$_SERVER[‘HTTP_HOST’].sfConfig::get(‘sf_webroot_dir’).’/’.sfConfig::get(‘app_controller_backend’);
return $ruta.$this-> getEnrutamientoFrontend()->generate($nombre, $parametros);
}

public function getEnrutamientoFrontend()
{
if (!$this->enrutamientoFrontend)
{
$this->enrutamientoFrontend= new sfPatternRouting(new sfEventDispatcher());

$configuracion = new sfRoutingConfigHandler();
$rutas = $configuracion->evaluate(array(sfConfig::get(‘sf_apps_dir’).’/nombreAppOrigen/config/routing.yml’));
$this->enrutamientoFrontend->setRoutes($rutas);
}

return $this->enrutamientoFrontend;
}

Ademas en el action de la aplicacion origen ponemos lo sgte:

$this->redirect($this->getContext()->getConfiguration()->generaUrlFrontend(‘ingreso_admin’));

Ahora explicaremos las lineas mas importantes que son las que deben cambiar deacuerdo a sus proyectos

  • generaUrlFrontend($nombre, $parametros = array())

Esta funcion recibe dos parametros, el primero es el nombre de la opcion de configuracion del archivo routing.yml de la aplicacion origen, y el segundo parametro es un arreglo de parametros en caso de que deseemos enviarle al modulo de la otra aplicacion.

  • sfConfig::add(array(‘sf_webroot_dir’ => ‘/nombreProyecto/web’));

En esta linea se define la ruta del proyecto hecho en symfony y se la almacena en sf_webroot_dir. Esta ruta («/nombreProyecto/web») se debe cambiar y poner la ruta hacia la carpeta web del proyecto propio, tomando en cuenta que esta se la debe poner desde la carpeta del servidor web, otro ejemplo seria poner «PHP5/proyecto/web», que es para las personas que tienen instalado php, apache y el MDBD por separado.

  • $ruta = ‘http://’.$_SERVER[‘HTTP_HOST’].sfConfig::get(‘sf_webroot_dir’);

En esta linea se define toda la ruta absoluta hacia la carpeta web de la otra aplicacion, podriamos ponerlo estatico, es dcir poner algo como «http://localhost/nombreProyecto/web/», pero dado que esta ruta por lo general la queremos de forma dinamica, lo hacemos de esta forma, ademas que mediante esto podemos facilmente pasar el proyecto a otra maq con otra estructura y no tendriamos problemas de directorios, ya que consultamos el servidor web que estemos utilizando y le agregamos la ruta de la carpeta web del proyecto que la guardamos en en el punto anterior.

  • sfConfig::get(‘app_controller_backend’)

Con esto obtenemos el nombre de la aplicacion a la cual queremos redireccionar, este nombre se lo debe configurar en el archivo app.yml de la aplicacion origen.

Este era el contenido de mi archivo app.yml, esto variara segun los nombres de las aplicaciones de ustedes:

prod:
controller:
frontend: frontend.php
backend:  index.php
dev:
controller:
frontend: frontend_dev.php
backend:  admin_dev.php

  • $configuracion->evaluate(array(sfConfig::get(‘sf_apps_dir’).’/nombreAppOrigen/config/routing.yml’))
  • $this->redirect($this->getContext()->getConfiguration()->generaUrlFrontend(‘ingreso_admin’));

Bien, ya tenemos «http://servidor/nombreProyecto/web», pero falta el nombre de la accion a la cual nos queremos dirigir. Estas lineas son para eso, para consultar el nombre de la accion a la cual nos queremos dirigir. La segunda linea nos indica el nombre de la opcion de configuracion del archivo routing.yml en donde obtenemos el nombre de la accion a ejecutar, mientras que en la primera linea le decimos en que directorio se encuentra este archivo routing.yml.

En mi caso tenia configurado el routing.yml de esta forma:

homepage:
url:   /
param: { module: default, action: index }

default_index:
url:   /:module
param: { action: index }

ingreso_admin:
url:   /:
param: { module: default }

default:
url:   /:module/:action/*

Con estos pocos pasos ya deberian poder moverse entre aplicaciones….

 
0

Symfony framework de Desarrollo PHP

Posted by andnovar on Jun 2, 2009 in Web

Sin duda alguna se ha convertido en uno de los Frameworks de Desarrollo mas usado y popular que hay, quizá no sea el mejor pero si uno de los que mas documentación en español tiene,  symfony provee una arquitectura, componentes y herramientas para los desarrolladores que permiten  construir complejas aplicaciones web mas rapidamente.

Symfony sigue el paradigma MVC ( modelo-vista-controlador ),  el cuál es un patrón de arquitectura muy usado en Ingeniería de Software. Personalmente en principio tuve ciertas dificultades con symfony que se fueron resolviendo a medida que leia la documentación e información al respecto, recomiendo antes de comenzar a desarrollar, leer muy bien como funciona symfony internamente esto les ahorrará horas de trabajo, los libros que usé son Symfony The Definitive Guide y Jobeet.

pasos para tener tu aplicación en unos pocos minutos:

====>    Creación del proyecto

En caso de usar wamp, y symfony 1.2.7
Creamos una carpeta llamada miproyecto dentro de www, y a su vez dentro de esta creamos una carpeta lib y dentro de lib una llamada vendor ya aqui descomprimimos la versión de symfony que hayamos descargado y colo camos su contenido en una carpeta llamada symfony. el directorio queda –> miproyecto/lib/vendor/symfony

  1. Configurando

    Aseguremonos que todo este ok
    c:\> php lib/vendor/symfony/data/bin/check_configuration.php
    Generemos el proyecto al realizar esta acción se genera el árbol de directorios
    c:\> php lib/vendor/symfony/data/bin/symfony generate:project nombre_mi_proyecto
    Generamos la aplicación de esta forma se crea el árbol de directorios donde almacenaremos
    las plantillas generales, y el mvc de la aplicación.

    c:\> php symfony generate:app –escaping-strategy=on –csrf-secret=UniqueSecret frontend

    los argumentos después de app se escriben por motivos de seguridades para evitar ataques a nuestra aplicación por ejemplo

    En el archivo ProjectConfiguration.class.php agregar esta linea que hace portable nuestro proyecto
    agregando una ruta relativa a la clase de incialización.

    require_once dirname(__FILE__).’/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php’;

    Configuración en el servidor apache para el proyecto
    # Esta es la configuración para mi_proyecto
    <VirtualHost 127.0.0.1:80>
    ServerName miproyecto.com
    DocumentRoot «C:\wamp\www\miproyecto\web»
    DirectoryIndex index.php
    <Directory «C:\wamp\www\miproyecto\web»>
    AllowOverride All
    Allow from All
    </Directory>
    Alias /sf «C:\wamp\www\miproyecto\lib\vendor\symfony\data\web\sf»
    <Directory «C:\wamp\www\miproyecto\lib\vendor\symfony\data\web\sf»>
    AllowOverride All
    Allow from All
    </Directory>
    </VirtualHost>

    Listo ya podrás acceder a tu aplicación desde un browser con la siguiente dirección
    http://miproyecto.com

  2. Definiendo la Base de Datos

    Dentro de la carpeta config se encuentran los archivos de configuración de symfony abriremos schema.yml, el cuál lo podemos personalizar a nuestro gusto o podemos generarlo a partir de una base ya existente.
    El contenido de este archivo es como el siguiente:

    propel:
    _attributes: { noXsd: false, defaultIdMethod: none, package: lib.model }

    tabla_pais:
    _attributes: { phpName: Pais, idMethod: native }
    id: ~
    nombre: { type: varchar(30), required: true }
    usuario: { type: varchar(10), required: true }
    created_at: ~
    updated_at: ~

    tabla_sucursal:
    _attributes: { phpName:Sucursal, idMethod: native }
    id: ~
    nombre: { type: varchar(30), required: true }
    pais_id: { type: integer, foreignTable: tabla_pais, foreignReference: id, required: true }
    usuario: { type: varchar(10), required: true }
    created_at: ~

    Este ejemplo es de un archivo yml que tiene una sintaxis muy especial, deben escribirlo con las debidas identaciones sino tendrán problemas, symfony entiende por default palabras como id, created_at, updated_at, etc … y los personaliza automáticamente, el phpName es el nombre que queremos que tenga nuestra clase una vez generado todo.

    Configurando la base de datos, con esta sentencia queda configurado el archivo databases.yml que se encuentra en la carpeta config.
    c:> php symfony configure:database «mysql:host=localhost;dbname=nombre_base» root ConTraSenA
    Generando el archivo sql que se guardara en data/sql con las sentencias sql optimizadas
    c:> php symfony propel:build-sql
    Insertando las tablas en la base
    c:> php symfony propel:insert-sql –no-confirmation

  3. MVC de la app

    Generamos el modelo, los controladores, los formularios

    c:> php symfony propel:build-all

    Generamos los modulos de la aplicación uno a uno, es aqui donde se realizan las operaciones fundamentales sobre las tablas

    c:> php symfony propel:generate-module –with-show –non-verbose-templates frontend nombre_para_modulo nombre_tabla

    Reemplazar luego los metodos _toString en las clases principales y vacias de cada modulo.

    Basicámente hemos creado la estructura de la aplicación lo que resta es modificar el archivo miaplicacion/apps/frontend/templates/layout.php para definir el estilo para todas las ventanas ydemas configuraciones necesarias.

Etiquetas: , , , ,

 
0

Vida sin límites

Posted by andnovar on Dic 20, 2008 in Uncategorized

Que pasaria si no tuvieses brazos ni piernas? si te cayeras posiblemente no te podrias levantar, pero que pasaria si encontraras la forma de levantarte a pesar de eso? habria entonces un limite? estarias limitado/a a moverte aparentemente, especialmente si tu mismo/a te impones limitaciones. Si tuvieramos una vida sin limites encontrariamos a lo largo del camino una razon o mas continuar adelante con entusiasmo. Aqui la historia real de un hombre que no tenia razones para sonreir, sin embargo cuando salio a ver el mundo encontro miles de razones para vivir feliz y al mismo tiempo a inspirado con su deseo de vivir, les presentamos este video que le llenara de inspiracion y motivacion para seguir adelante:

 
0

Animaciones 3D en Maya

Posted by andnovar on Oct 20, 2008 in GraficosXComputadora, Multimedia, Uncategorized

Un potente herramienta para modelar objetos 3d y conocimientos adquiridos en la materia de Gráficos X Computadora se logran buenos efectos. Este es un video amateur y es el primer video hecho por nosotros en un modelador.

 
0

Android en un N800

Posted by andnovar on Oct 20, 2008 in Uncategorized

Un momento en mi vida en el cual instale Android en el N800 como muchos saben Android es el Sistema operativo de google, talvez cuando ya hayan dispositivos especializados para Android su popularidad aumente… Pero sin duda alguna Google esta en todo y piensa en todo.

Copyright © 2024 Tecnologías Interesantes All rights reserved. Theme by Laptop Geek.