Integración de clases externas a Symfony

563 views
Skip to first unread message

Luis A. Nuñez

unread,
Sep 22, 2011, 3:41:30 PM9/22/11
to symfony-es, arman...@gmail.com
Cordial saludo a todos, soy nuevo en este grupo, acabo de llegar, pero
tengo una pregunta que me gustaría plantearles con todo el respecto y
la esperanza de encontrar respuesta.

Estoy haciendo un proyecto en Symfony y tengo un conjunto de clases
php, que he usado en otro proyecto y me han servido mucho, en un
proyecto que estoy ahora me veo en la necesidad por cuestiones de
tiempo de usar esas clases, (las clases estan en un conjunto de
archivos .php) pero no se como puedo integrarlas a Symfony, para poder
instanciar las clases desde cualquier action de mi proyecto.

De antema muchas gracias por sus respuestas y tiempo. Espero haber
entrado con pie derecho al grupo

Richard Perez

unread,
Sep 23, 2011, 5:13:34 PM9/23/11
to symfony-es
Hola Luis,

Por lo que entiendo estas trabajando con symfony 2, si es asi lo que
requieres es muy sencillo gracia al uso de espacios de nombres, en
realidad soy relativamente nuevo en Symfony2, pero creo que esta es la
manera correcta, si alguien conoce una mejor soy todo oidos :D.

Dentro de tu Bundle tienes algunas carpetas,

TuBundle
-Controller
-Resources
-Test
.......

Entonces simplemente crea una carpeta adicional, por ejemplo MisClases
y dentro de ella mete todas tus clases.

Ahora cada clase al principio del archivo le agregas el espacio de
nombre, ejemplo supongamos que tienes una clases llamda Archivo

namespace NombredeTuVendor\TuBundle\MisClases;

class Archivo
{
.
.
.
}

Y haces lo mismo con todas tus clases (Fijate que en namespace no
colocas el nombre de clase)


Luego supongamos que las quieres usar en uno de tus controladores, la
mejor practica seria agregar el dicha clase con un 'use'

namespace NombredeTuVendor\TuBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

//Aquie seria un sitio ideal para agregar tu clase, fijate que aqui si
colocas el nombre de tu clases

use NombredeTuVendor\TuBundle\MisClases\Archivo;

class DefaultController extends Controller
{
public function miMetodoAction()
{
//Tu codiog aqui

//Y cuando quieras implementar tu clase, por ejemplo instanciar
puedes hacer
$variable = new Archivo();

//Listo ya tienes tu objeto disponible
}
}

Eso seria todo, si en tus controladores frecuentemente llamas muchas
de esas clases y no quieres estar añadiendo tantos uses, puedes hacer
lo siguiente (observa como le doy un alias al 'use')

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

//Aquie seria un sitio ideal para agregar tu clase, fijate que aqui si
colocas el nombre de tu clases

use NombredeTuVendor\TuBundle\MisClases\Archivo as ClasesExt;

class DefaultController extends Controller
{
public function miMetodoAction()
{
//Tu codiog aqui

//Ahora cuando quieras implementar una de tus clases, puedes
hacer lo siguiente
$variable = new ClasesExt\Archivo();

//Supongamos que tienes otra clase que esta dentro de aquella
carpeta que se llama 'OtroA'
$otraVar = new ClasesExt\OtroA();

//Listo ya tienes tu objeto disponible
}
}

Espero que esto te sirva de ayuda y no llegar tarde con la info.

Luis A. Nuñez

unread,
Sep 26, 2011, 9:26:06 AM9/26/11
to symfony-es
Muchas gracias por tu respuesta Richard, buscando por internet
encontre la solución a mi problema ya la probé y funciono. Por cierto
la versión de symfony que estoy usando es la 1.2.9

Lo que hice fue basicamente poner todos los archivos de clases en la
carpeta lib del modulo donde hago uso de las biblioteca y luego llamo
a la clase desde cualquier action del modulo.

Nuevamente gracias por tu respuesta.

oyepez003

unread,
Sep 27, 2011, 10:10:24 AM9/27/11
to symfony-es
Por eso es que hay que especificar con que version de Symfony se esta
trabajando....

se bardo

unread,
Jun 2, 2012, 7:28:02 PM6/2/12
to symfo...@googlegroups.com
Gracias Richard Perez solucionaste mi duda, todo sirve hasta las cosas que parecen que se hicieron en vano ;)

gracias!!!!!

2011/9/27 oyepez003 <oyep...@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.


helysm

unread,
Jun 2, 2012, 7:33:39 PM6/2/12
to symfo...@googlegroups.com

Deberias intentar la forma de actualizar el framewok, y viendo lo vieja de la version deberias hacerlo de manera secuencial osea de a version intermedia

El jun 2, 2012 6:28 p.m., "se bardo" <dsa...@gmail.com> escribió:

Gracias Richard Perez solucionaste mi duda, todo sirve hasta las cosas que parecen que se hicieron en vano ;)

gracias!!!!!



2011/9/27 oyepez003 <oyep...@gmail.com>
>
> Por eso es que hay que especificar con que version d...

Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

Reply all
Reply to author
Forward
0 new messages