tutorial symfony2 MySql

Como conectar MySql en Symfony2

tutorial symfony2 MySql
Usar y Crear una base de datos en Symfony2.

Bienvenidos Amigos!
 

En este «pequeño» tutorial vamos a ver como configurar, como conectar Symfony2 a una base de datos, usando un ORM (doctrine2).

En esta primera parte vamos a ver lo básico para crear la base de datos y su conexión. En una segunda parte que solo está en formato video, veremos como crear entidades más rápidamente, como realizar consultas updates, etc…
 

Recuerda que al final de la página tienes los vídeos para que veas en detalle el proceso.
 

Os hago un resumen de lo que podemos ver en el video:

En primer lugar vamos a crear una entidad. Una entidad va a ser una clase php, que representa un objeto de nuestra aplicación que queremos modelar y que queremos que tenga su representación también en la base de datos.
 

Supongamos que seguimos desarrollando nuestra aplicación de frutas y verduras, pues bien, seguramente necesitemos modelar una entidad FRUTA para guardar datos sobre las frutas. Así que lo que hacemos es crear una clase php que se llama fruta.php y por regla general las guardamos en la carpeta entity. Se trata de una clase normal, con los variables privadas y métodos get y set para acceder a las variables.
 

Además de crear una clase fruta.php de forma convencional, hacemos uso del API DOCTRINE (tranquilos Symfony2 lo trae de serie), indicamos que la clase es una entidad y definimos las variables privadas que deseamos que se reflejen en la base de datos.
 

Para importar el API de Doctrine:

use Doctrine\ORM\Mapping as ORM;

 

Para indicar que la clase es una entidad:

/** @ORM\Entity */

 

Para indicar que una variable tiene representación en la base de datos:

/** @ORM\Column(type="string", length=50) */

 

Para indicar que una variable es la clave primaria

	/**
	* @ORM\Id
	* @ORM\Column(type="integer")
	* @ORM\GeneratedValue(strategy="AUTO")
	*/

 

El fichero por \src\FrontalBundle\Entity\fruta.php queda de la siguiente forma:

id;
	}
	
	public function setNombre($nombre)
	{
		$this->nombre = $nombre;
	}
	
	public function getNombre()
	{
		return $this->nombre;
	}
	
	public function setDescripcion($descripcion)
    {
        $this->descripcion = $descripcion;
    }

    public function getDescripcion()
    {
        return $this->descripcion;
    }

    public function setFechaEntrega($fechaEntrega)
    {
        $this->fechaAlta = $fechaAlta;
    }

    public function getFechaEntrega()
    {
        return $this->fechaEntrega;
    }

    public function setEcologica($ecologica)
    {
        $this->ecologica = $ecologica;
    }

    public function getEcologica()
    {
        return $this->ecologica;
    }

    public function setGramos($gramos)
    {
        $this->gramos = $gramos;
    }

    public function getGramos()
    {
        return $this->gramos;
    }
	
	
}

 

En segundo lugar creamos la base de datos. Podemos crear la base de datos de dos formas:

  • Con una aplicación cliente de base de datos (toad, phpmyadmin, workbench), nos conectamos a ella y creamos la base de datos y un usuario para acceder a la nueva base de datos.
  • Desde línea de comandos, accedemos desde la shell y creamos un usuario que tenga privilegios suficientes.

 

Para conectarnos a la base de datos MySql, crear un usuario y darle permisos:

mysql -u root -p		//Conexion como root, te pedirá password
mysql> CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña';	//Creación del usuario en la b.d.
mysql> GRANT ALL ON nombreBaseDatos.* TO 'usuario'@'localhost';		//Dar permisos sobre la b.d.

 

En tercer lugar, indicamos a Symfony donde encontrar la base de datos. Para ello tenemos el fichero \app\config\config.yml

imports:
    - { resource: parameters.yml }
...
doctrine:
    dbal:
        driver:   pdo_mysql
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

Y el fichero \app\config\parameters.yml

# This file is auto-generated during the composer install
parameters:
    database_host: 127.0.0.1
    database_port: null
    database_name: fruteriadb
    database_user: fruteriauser
    database_password: fruteriauser
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    secret: 3e289f5eaa4a36fc5b585cdd7fcc59cf0d96deac

 

El cuarto paso es que Symfony cree las tablas. Para decirle a Symfony que se conecte a la base de datos, cree la base de datos y cree las tablas (tabla fruta en nuestro ejemplo:

php app\console doctrine:database:create    //Crea la base de datos
		
php app\console doctrine:schema:create      //Crea las tablas

 

Y esto es un pequeño resumen de lo que vas a encontrar en el vídeo.
Espero que te guste y te sea útil, si es así no olvides darle al like.
 


 

Aquí te dejo la segunda parte del video:
 

Te animo a que crees tu propia aplicación siguiendo estos tutoriales.
También puedes ver todo el código en github
 

Un saludo!!

Configura tu plantilla profesional para Symfony2


Crear una plantilla profesional en Symfony2

Bienvenidos Amigos!
 

En este pequeño tutorial vamos a ver como usar en Symfony2 una plantilla profesional de las muchas que podemos encontrar por la red. Recordar antes de usar una plantilla, es necesario revisar la licencia de uso, para que se adapte al objetivo de vuestro proyecto y no cometamos ilegalidades.
 

Recuerda que al final de la página tienes el vídeo para que veas en detalle el proceso.
 

El uso de una plantilla para un proyecto web tiene 3 principales motivaciones:

  • Dar un estilo profesional.
  • Unificar la apariencia de nuestra web.
  • Facilitar el desarrollo de nuevas páginas.

 

La forma de poder trabajar con una plantilla que nos brinda Symfony2 y Twig, es separar esta en distintos niveles, y que unos niveles dependan de otros. Normalmente dividiremos la plantilla en 3 niveles:

  • Una base
  • Frontend
  • Contenido

 

De esa maneras todas las paginas tendrán una misma base (1º Nivel).
 

Luego se puede dar una estructura similar a todas las paginas de un mismo módulo que compartan un mismo objetivo, como puede ser la parte visible para los visitantes, otra apariencia para los usuarios registrados, etc. (2º Nivel).
 

Por último se puede usar una plantilla para el contenido final (3º Nivel), es posible que haya que crear varios 3-niveles si queremos que sean distintos en función del nivel 2.
 

Básicamente para poder separar una plantilla tenemos que identificar cada una de las partes que componen una página básica, para ello conviene tener claro los conceptos de html y como se suelen articular el uso de las etiquetas web.
 

Para usar el concepto de extensión de niveles, y que un nivel extienda de otro nivel, tendremos que usar la palabra reservada de twig extends:

{% extends 'FrontendBundle:Default:frontend.html.twig' %}

 

Para definir bloques, (zonas de la página que queremos que se implementen en otro nivel), tendremos que realizarlo con «block»:

{% block nombreBloque %}
{% endblock %}

También nos interesa publicar los assets de nuestra plantilla. Los assets como los «complementos» de nuestra plantilla, es decir, los ficheros css, js, imagenes.. que acompañan la plantilla. Para publicar los assets tenemos que copiarlos al directorio «…src\NombreDeNuestroBundle\Resources\public» y para publicarlos tenemos que llamar a la consola de symfony de la siguiente manera:

php app\console assets:install

Una vez publicado, los ficheros que tuviéramos en la carpeta «public» se duplicarán a la carpeta «web\bundles\NombreDeNuestroBundle», esta carpeta es accesible desde el navegador cuando se accede a nuestro sitio web.
 

A continuación os dejo el vídeo donde se muestra todos los pasos con más detalle, espero que os guste y si es así darle al like 😉
 


 

Te animo a que crees tu propio proyecto de Symfony2 (puedes ver el tutorial que he escrito sobre ello) y utilices una plantilla profesional.
También puedes ver todo el código en github
 

Un saludo!

tutorial symfony bundle

Como crear un Bundle en Symfony2

tutorial symfony bundle

Primer Bundle y primera página web en Symfony2

Bienvenidos!
 

Hoy vamos a ver como generar nuestra primera página web y nuestro primer Bundle para Symfony2! Sino sabes de lo que estamos hablando quizás deberías leer el tutorial anterior donde creamos la instalación de Symfony2 totalmente nueva desde el inicio.
 

Recuerda que al final de la página tienes el vídeo para que veas en detalle el proceso.
 

Symfony se estructura mediante una serie de componentes llamados «Bundle«. Para generar nuestra primera página lo primero que debemos realizar es crear nuestro Bundle, para ello disponemos de un comando que nos brinda simfony que nos ayuda a crear el Bundle.
 

Para acceder a los comandos de symfony hay que ejecutar con php el comando console y a continuación indicarle la acción que queremos generar, si no indicamos ninguna acción nos muestra un listado con todas las posibles acciones que se pueden realizar.
 

php app\console

En nuestro caso deseamos crear un bundle así que ejecutamos la siguiente instrucción desde la linea de comandos, justo en el directorio de nuestra aplicación symfony (por debajo del directorio «app»).
Nota: Recuerda que tienes que tener php instalado en el path para poder ser ejecutado desde cualquier directorio de tu pc.
 

php app\console generate:bundle

Al ejecutar la instrucción, un pequeños asistente en modo texto nos pregunta por:

  1. Si estamos planteando compartir nuestro Bundle con otras aplicaciones. Por defecto: no (pulsamos intro).
  2. Nombre de nuestro Bundle. En nuestro ejemplo FrontalBundle (siempre tiene que acabar con Bundle).
  3. Directorio donde estará el código: Por defecto: src (pulsamos intro).
  4. Formato de configuración: yml

Tras un pequeño tiempo de proceso ya tenemos nuestro primer Bundle creado. ¡Bravo!
 

El funcionamiento de Simfony2, suele ser el siguiente:
 

1._ La ruta introducida en la url del navegador es buscada por el fichero de «routing». (es como una especie de índice).
 

2._ Una vez encontrada la ruta, se redirige a una función de un controlador.
 

3._ En la función del controlador, se realiza las acciones que se quieran llevar al cabo y se devuelve la página web.
 

4._ La página web devuelta se puede escribir a «pelo», pero por norma general se selecciona una plantilla para que se renderice.
 

5._ El template es renderizado y se devuelve al navegador.
 

Así pues, una vez visto el funcionamiento, vamos a editar el fichero de routing, este fichero se encuentra en nuestro Bundle recién creado, en nuestro ejemplo sería fruteria\src\FrontendBundle\Resources\config\routing.yml .
 

En este fichero generamos las rutas, url´s que queremos que sean interpretados por nuestra aplicación y que realicen alguna acción (mostrar una web). En particular haremos que cuando la ruta de nuestra aplicación sea: www.midominio.com/mipagina se llame a la función mipaginainicialAction  que se encuentra en el fichero DefaultController (observa que las palabras Action y Controller no hay que indicarlas, se agregaran por convención del lenguaje al nombre de la función y al nombre del controlador).
 

frontal_homepage:
    path:     /
    defaults: { _controller: FrontalBundle:Default:index }

primera_ruta:
    path:     /mipagina
    defaults: { _controller: FrontalBundle:Default:mipaginainicial }  

Una vez realizado el «ruteo», vamos a programar la función mipaginainicialAction en el fichero controlador. En este ejemplo la función no hace nada espectacular, simplemente devuelve la compilación/renderización de una plantilla web.  El fichero controlador en nuestro ejemplo se encuentra en  fruteria\src\FrontendBundle\Controller\DefaultController.php .
 

render('FrontalBundle:Default:index.html.twig');
    }
	
    public function mipaginainicialAction()
    {
        return $this->render('FrontalBundle:Default:mipaginainicial_template.html.twig');
    }
}

Por último solo nos queda contruir la plantilla o template, en nuestro ejemplo se encuentra en fruteria\src\FrontalBundle\Resources\views\Default\mipaginainicial_template.html.twig y se trata de una template muy muy muy sencilla que nos da la bienvenida.
 




Bienvenidos al tutorial!

Una vez tenemos la estructura montada solo nos queda probar y observar nuestros resultados. A continuación te dejo el video con toda la explicación detallada, espero que os guste!
 

Te animo a que pruebes creando distintas rutas o creando distintas templates. Recuerda darle a like, compartir si te gusta,  dejar un comentario para darme feedback y saber en que puntos puedo mejorar.
Un saludo!
 

tutorial symfony2

Aprende a instalar Symfony2, paso a paso.

tutorial symfony2
Buenas a todos!!

Vamos a empezar con un pequeño paso, sencillo pero importante, crear el esqueleto de una aplicación. (instalar symonfy2). En este primer tutorial vamos a ver como instalar Symfony2, en concreto la versión 2.8, aunque el mismo tutorial nos sirve si queremos instalar la versión 3.0

Recuerda que al final de la página tienes el vídeo para que veas en detalle el proceso.

– Lo primero que tenemos que hacer es descargarnos el instalador, se trata de un pequeño programa empaquetado en php «phar».

Para bajarnos el fichero lo hacemos a través de una setencia php.

php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"

– Una vez descargado el el fichero, que como podeís observar lo hemos llamado symfony, lo ejecutamos con php, indicando el nombre del nuevo proyecto y la versión de symfony que deseamos instalar.

php symfony new my_project 2.8

Os dejo el video espero que os guste.



Un saludo.