jueves, 6 de junio de 2013

Acceder a la carpeta Config en Symfony 2

Hoy he tenido un gran comedero de cabeza, estoy usando una API externa a Symfony, la cual requiere un archivo de configuración, la forma mas sencilla de usarlo es copiar y editar ese archivo de configuración en la carpeta Vendor del mismo, pero como sabemos los vendor se instalan y actualizan por separado, así que eso para hacer pruebas esta genial, pero no para trabajar, así que e pensado que lo mas correcto seria almacenar ese archivo de configuración dentro de la carpeta app/config de Symfony, el problema me lo he encontrado al decirle al controlador donde estaba ese archivo.

En symfony (1) tenemos la orden: sfConfig::get('sf_app_config_dir')
Pero en Symfony2 no existe así que debemos decírselo a mano, por lo que el siguiente código podría decirse que es su equivalente; una vez sepamos como es muy sencillo, pero no hay demasiada información en la red, así que aquí os lo dejo, y espero que os resulte de gran utilidad, como a mi cuando hoy he dado con ello.

$ConfigFile = $this->get('kernel')->getRootDir() . '/config';

Aumentar / Disminuir Fuente en NetBeans

Una pregunta muy común en la red, es la de como aumentar o disminuir la el tamaño de la fuente en NetBeans; esto es tan sencillo como mantener pulsada la tecla Alt y a la vez girar la rueda del ratón

Probado en NetBeans 7.2 , 7.4  y 8

Espero os sirva de ayuda ;)

martes, 4 de junio de 2013

Curso programación desde 0 - Tema 2 - Pensando como programadores

Vamos a ir entrando un poquito en materia, ahora que ya Vimos en el tema anterior http://robertogascon.blogspot.com/2013/05/curso-programacion-desde-0-tema-1-que.html que es la programación y algunas características generales, como la programación a bajo y a alto nivel, también hemos visto algunas características de los lenguajes más utilizados hoy día, y en que entorno se pueden usar.

Ahora podremos hacer 2 cosas, escoger un lenguaje de programación, algún manual, curso o tutorial, y empezar a aprenderlo, esto puede parecer lo más lógico, e incluso puede que lo más rápido, pero es aquí en donde fracasa la mayoría de la gente que intenta empezar a programar sin nociones previas; al que de verdad a nacido para esto, lo vive y pone todo el empeño en ello lo acaba logrando, pero después de sudar mucha sangre y horas y horas, para entender por un lado los ejemplos, por otro el lenguaje que haya elegido, y por último el IDE (un IDE es un entorno de desarrollo, que nos ayudara en la tarea de programación, mas adelante veremos cómo, y cuáles son los más populares para según qué lenguaje).
Es decir si elegimos ahora aprender un lenguaje, deberemos aprender a usar un programa para ello, los cuales normalmente son inmensos, aunque los hay muy ligeros, el lenguaje que elijamos y la lógica de programación, esto viene siendo como si al poco de nacer quisiéramos decir nuestra primera palabra, en 2 idiomas, y andar a la vez, todo ello sin gatear, ni balbucear, tarea casi imposible.

La otra opción que tenemos es ir por partes; eso es lo que vamos a hacer en este curso, poquito a poco, sin prisas, y cada uno a su ritmo.

En este tema, os voy a enseñar a pensar como programadores, lo cual aunque no es muy complejo, si necesita de un previo aprendizaje, y por supuesto, vamos a hacerlo en castellano, que es nuestro idioma.

Lo primero, es, vamos a pensar como programadores, pero ¿como? Pues como vimos en el anterior tema la programación consiste en resolver problemas, así que vamos con un problema de lo más cotidiano, tenemos sed:
Muchos diréis, pues bebemos, y eso como respuesta final, no está mal, pero recordemos que los ordenadores son tontos, solo cumplen ordenes, ¿si nosotros fuéramos un ordenador que orden nos tendrían que dar, para quitarnos la sed?

Si quisiéramos hacer un programa para resolver el problema de cuando tenemos sed, tendríamos que teclear paso a paso, por lo que un ejemplo de programa que resuelva tener sed puede ser algo así:

Sentimos sed;
Nos levantamos;
Vamos hasta la cocina;
Abrimos la vitrina;
Cogemos un vaso,
Vamos hasta la nevera;
Cogemos la botella de agua (o líquido a nuestro gusto);
Cerramos la nevera;
Abrimos la botella;
Llenamos el vaso;
Cerramos la botella;
Volvemos hasta la nevera;
La abrimos;
Guardamos la botella;
Cerramos la nevera
Volvemos hasta el vaso;
Bebemos;

Como podemos ver una tarea cotidiana a la hora de hacerla un programa se ha convertido en algo complejo, largo y algo tedioso, este programa para beber en realidad esta simplificado, y tiene un fallo, hemos cogido el vaso, la botella, y abierto el frigorífico, todo ello sin soltar el vaso, ay dependerá de la habilidad de cada uno, pero existen muchas posibilidades de que se nos caiga el vaso, o de lo que es lo mismo en programación, un bug, ya que cuando intentemos llenar el vaso, no va a existir, y el ordenador no sabrá donde echar el agua, pero esto es materia un poco más avanzada; de momento vamos a dejar aquí nuestro programa para beber, y voy a explicar de nuevo lo mismo con otro ejemplo:

Esta vez, estamos en casa, y tenemos que salir y coger el coche, para ir hasta el súper a hacer la compra.

Nos levantamos;
Buscamos las llaves;
Vamos hasta la puerta;
La abrimos;
Salimos;
La cerramos;
Vamos hasta la calle;
Buscamos el coche;
Lo abrimos;
Nos montamos;
Lo cerramos
Metemos la llave en el contacto;
La giramos para arrancar;
Salimos del aparcamiento (Utilizando los pedales de la manera necesaria);
Conducimos hasta el súper;
Aparcamos;
Paramos el motor;
Abrimos la puerta;
Nos bajamos;
Cerramos el coche;
Caminamos hasta el súper;
Compramos;

Os recomiendo leer un par de veces ambos ejemplos para terminar de entenderlo bien, no es algo demasiado difícil, pero es importante entenderlo bien para seguir entrando en materia.

Algunos ejercicios para practicar pueden ser:
-Hacer un programa para poner nuestra emisora favorita de música.
-Un programa que nos saque de la cama cada mañana para ir al trabajo.

Recuerda que el mejor modo para la correccion es publicarlo como comentario debajo del ejercicio, asi tu y todos tus compañeros podeis aprender y ayudaros los unos a los otros, pero estoy disponible en el email rogamainformatica@gmail.com

jueves, 30 de mayo de 2013

Curso programación desde 0 - Tema 1 - ¿Qué es la programación?

En este curso pretendo que alguien que todavía no sabe nada de programación, alguien que parte desde 0, adquiera los conocimientos necesarios para comenzar en el arte de la programación.

Veremos los aspectos básicos, las bases, cimientos, que nos servirá para cualquier lenguaje de programación, para cualquier lenguaje.

Una vez tengamos estos conocimientos podremos aprender cualquier lenguaje, para cualquier plataforma.

Lo primero es saber que es la programación, en qué consiste:

Curso de programación desde 0 - Funcionamiento

En este curso; comenzaremos explicando que es la programación, en qué consiste, nombraremos algunos de los lenguajes más populares de la actualidad.

Después daremos algunos ejemplos los cuales se pueden ver como problemas, los cuales resolveremos en el curso, pondremos ejercicios para llevar a cabo, ya que la mejor manera de aprender es hacerlo uno mismo, estos ejercicios se me pueden enviar, para la corrección, así como para resolver vuestras dudas.

sábado, 25 de mayo de 2013

Es fácil que al utilizar los fragmentos del tipo

<<<EOJ
<script type="text/javascript>
..........
..........
..........
</script>
EOJ

hagamos algo parecido
$html =<<<EOJ
            <script type="text/javascript>
                        function loQueSea(){
                                    ..........
                                    ..........
                                    ..........
                        }
            </script>
            EOJ;
return $html;

Esto nos marcara error, puesto que no podemos tabularlo de esta manera, la siguiente linea después de la definición <<<EOJ debe estar sin tabular, por lo que el formato correcto para lo anterior seria algo así:


$html =<<<EOJ
<script type="text/javascript>
          function loQueSea(){
                  ..........
                  ..........
                  ..........
          }
</script>
EOJ;
return $html;

Symfony - An exception has been thrown during the rendering of a template

Seguramente nos de este error a muchos de los que empezamos con Symfony y usamos de referencia el libro de desarrollo ágil con Symfony.

An exception has been thrown during the rendering of a template ("No route found for "GET Default:listaCiudades"") in "OfertaBundle:Default:portada.html.twig".

[3/3] Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("No route found for "GET Default:listaCiudades"") in "OfertaBundle:Default:portada.html.twig"


[2/3] NotFoundHttpException: No route found for "GET Default:listaCiudades"


[1/3] ResourceNotFoundException:


este error nos indica que no encuentra la vista de listaCiudades, en realidad el problema esta en que lo busca donde no debe, esta buscándolo dentro del Bundle de Oferta, y claro, esta en Ciudades....

Esto es debido a que en el libro nos viene este código:
<li>{% render "CiudadBundle:Default:listaCiudades" 
                        with {'ciudad': ciudadSeleccionada } %}</li>

el cual debemos poner en la plantilla del frontend, pero esto no es valido para versiones de Symfony superiores a la 2.1, versión para la cual esta escrita la versión mas actual a día de hoy del libro; para versiones superiores debemos poner este otro código:

<li>{{ render (controller("CiudadBundle:Default:listaCiudades" , { 'ciudad': ciudadSeleccionada })) }}</li>

PD: el libro lo podéis encontrar en: http://symfony.es/libro/ cuesta 10€, esta en perfecto castellano, son mas de 600 paginas, y por lo general esta bien, aunque contiene algunos errores de este tipo.

PD2: este código esta probado para la versión 2.2.1 de Symfony.

martes, 21 de mayo de 2013

Curso programación

Buenas a tod@s, estoy pensando en hacer un pequeño curso de programación, para ayudar a todo aquel que quiera comenzar a programar, con o sin conocimientos, pero quiero hacer algo que sea realmente útil, no como los cientos de libros, tutoriales y demás que hay por la red, que en realidad ninguno esta completo y siempre hay que andar de un sitio a otro; para ello me gustaría saber vuestras opiniones, dudas, y demás inquietudes, que o bien habéis tenido a la hora de empezar, o bien tenéis, al estar buscando como comenzar.

La idea es hacer algo desde 0, es decir ubicar las bases mínimas de programación, algo que sirva para cualquier lenguaje, y plataforma, para después ir avanzando y entrando en materia, de hay que necesite saber vuestras inquietudes; por otro lado, quisiera saber que lenguajes, o plataformas, son las que mas os interesan, para desarrollar el curso en base a ello.

Sin mas, me despido de vosotros, pero no sin antes daros las gracias por vuestros comentarios que espero ansiosamente

Un saludo

Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programación?

sábado, 18 de mayo de 2013

Instalacion de symfony2

Instalar symfony 2 es muy sencillo, el problema es que hay mucha documentacion obsoleta en la red, y a veces cuesta encontrar la correcta para comenzar con symfony 2 tenemos 2 opciones, descargar desde la web oficial http://symfony.com  la version con vendors; o si solemos utilizar git la version sin vendors, para descargar la version con vendors, solo debemos descargar el paquete necesario y descomprimirlo en nuestra raiz del servidor

Por lo que voy a explicar como instalarlo sin Vendors; descargaremos el paquete sin ellos, actualmente el ultimo estable es: http://symfony.com/download?v=Symfony_Standard_Vendors_2.2.1.zip; despues deberemos ejecutar este comando de consola, una vez localizados en nuestro directorio raiz del servidor

php composer.phar install

y no php bin/vendors install como nos dicen en muchos otros sitios, esto dara error al descargarnos el paquete bin vacio

pero esto seguramente nos de error al no tener el composer instalado; auque tiene facil solucion, tan solo debemos entrar en https://getcomposer.org/installer
y guardar el contenido en el directorio raiz de nuestro proyecto, como instalador.php
ejecutar en la consola php instalador.php, dejaremos que termine de trabajar, y ahora si podemos usar
php composer.phar install

desoues de esperar un rato a que se descarguen todos los paquetes, ya deberemos tener preparado todo para trabajar con symfony

viernes, 17 de mayo de 2013

Symfony - Doctrine\ORM\Mapping\MappingException

[Doctrine\ORM\Mapping\MappingException]
Class "Cupon\TiendaBundle\Entity\Tienda" is not valid entity or mapper super class.

Este error ocurre si tenemos mal las anotaciones de la Entidad es decir si tenemos algo al estilo:

/*
*@ORM\Entity
*/
class Tienda{
.......


En lugar de

/**
*@ORM\Entity
*/
class Tienda{
.......

el segundo asterisco de la parte superior es vital para que Doctrine lo pueda reconocer como anotacion