Cupon es una aplicación de prueba desarrollada para aprender a programar con Symfony 2.8. Se trata de un clon simplificado de Groupon, de ahí el nombre. Esta aplicación es la base del libro Desarrollo web ágil con Symfony publicado por Javier Eguiluz.
Si descubres algún error, por favor utiliza la página de issues de Github para avisarnos.
En el libro Desarrollo web ágil con Symfony se expica detalladamente cómo instalar bien Symfony y la aplicación Cupon. A continuación sólo se indican los principales pasos necesarios.
En primer lugar debes tener Composer instalador globalmente. Si utilizas Linux o Mac OS X, ejecuta los siguientes comandos:
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
Si utilizas Windows, descárgate el instalador ejecutable de Composer y sigue los pasos indicados por el instalador.
Una vez instalado Composer, ejecuta los siguientes comandos para descargar e instalar la aplicación Cupon:
# clona el código de la aplicación
$ cd proyectos/
$ git clone git://github.com/javiereguiluz/Cupon.git
# instala las dependencias del proyecto (incluyendo Symfony)
$ cd Cupon/
$ composer install
La forma más sencilla de probar la aplicación, ejecuta el siguiente comando, que arranca el servidor web interno de PHP y hace que tu aplicación se pueda ejecutar sin necesidad de usar Apache o Nginx:
$ php app/console server:run
Server running on http://localhost:8000
Ahora ya puedes abrir tu navegador y acceder a http://localhost:8000
para
probar la aplicación.
El comando anterior requiere PHP 5.4. Si utilizas una versión anterior de PHP, tendrás que configurar un virtual host en tu servidor web, tal y como se explica con detalle en el libro.
Al empezar a programar con Symfony, es común no saber la causa exacta de algunos de los errores que se producen. En estos casos es útil borrar la caché de la aplicación ejecutando los siguientes comandos:
php app/console cache:clear
php app/console cache:clear --env=prod
Si aún así siguen persistiendo los errores, al principio también suele ser útil
borrar completamente los directorios dentro de app/cache/
(por ejemplo con el
comando rm -fr app/cache/*
).
1. Si solamente ves una página en blanco, es posible que se trate de un problema de permisos. En el libro se explica detalladamente cómo solucionarlo, pero una solución rápida puede ser ejecutar el siguiente comando:
$ cd proyectos/Cupon/
$ chmod -R 777 app/cache app/logs
Si no te funciona esta solución, también puedes consultar el artículo Cómo solucionar el problema de los permisos de Symfony.
2. Si ves un error relacionado con la base de datos, es posible que tu instalación de PHP no tenga instalada o activada la extensión para SQLite.
Para facilitar la instalación de la aplicación, SQLite se usa por defecto. Si prefieres usar una base de datos como MySQL, sigue estos pasos:
app/config/parameters.yml
comentando todo lo relacionado
con SQLite y descomentando todo lo relacionado con MySQL.app/config/config.yml
y en la sección dbal
, comenta
todo lo relacionado con SQLite y descomenta todo lo relacionado con MySQL.$ php app/console doctrine:database:create
$ php app/console doctrine:schema:create
$ php app/console doctrine:fixtures:load
# si este último comando da error, ejecuta en su lugar:
$ php app/console doctrine:fixtures:load --append
# si estás desarrollando la aplicación desde cero, ejecuta lo siguiente
# para cargar los datos de prueba simplificados que no utilizan la seguridad
$ php app/console doctrine:fixtures:load --fixtures=app/Resources
3. Si no puedes subir imágenes al crear una oferta
Asegúrate de que el directorio web/uploads/images/
tiene permisos de escritura.
La aplicación incluye varios test unitarios y funcionales de ejemplo. Para ejecutarlos debes tener la herramienta PHPUnit instalada. Después, ejecuta el siguiente comando en el directorio raíz del proyecto:
$ phpunit -c app
http://localhost:8000
http://localhost:8000/app.php
usuarioN@localhost
siendo N
un número entre 1
y 100
usuarioN
siendo N
el mismo valor que el del nombre de usuariohttp://localhost:8000/extranet
http://localhost:8000/app.php/extranet
tiendaN
siendo N
un número entre 1
y 80
aproximadamente
(el límite superior es aleatorio)http://localhost:8000/backend
http://localhost:8000/app.php/backend
admin
1234