javiereguiluz / cupon Goto Github PK
View Code? Open in Web Editor NEWAplicación de prueba para aprender a programar con Symfony2
License: Other
Aplicación de prueba para aprender a programar con Symfony2
License: Other
Esta versión de Symfony2 corrige un importante error de seguridad.
Fuente: http://symfony.com/blog/security-release-symfony-2-0-6
Saludos Javier,
Tras ejecutar el comando: php app/console assetic:dump --env=prod --no-debug
Se logra ver lo siguiente:
Dumping all prod assets.
Debug mode is off.
[dir+] D:\public_html\cupon\app/../web/css
[file+] D:\public_html\cupon\app/../web/css/backend.css
[RuntimeException]
El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del
volumen no son correctos.
El RuntimeException aparece también al limpiar la caché de producción.
Agradezco la información que puedas indicar.
Saludos, propongo que hagamos uso de algunas de las novedades de HTML5 para dar una experiencia más agradable al usuario, principalmente usando los atributos pattern y placeholder de los input (http://mytutorials85.blogspot.com.es/2012/04/formularios-en-html5.html)
Los cambios los realizariamos especificamente para el email y la tarjeta de credito (dentro de UsuarioType.php)
Para el email:
->add('email' , 'email' , array('label' => 'Correo' , 'attr' => array('placeholder' => 'usuario@servidor')))
Para la Tarjeta de Credito:
->add('numero_tarjeta','text', array('label' => 'Tarjeta de Credito', 'attr' => array('pattern' => '^[0-9]{13,16}$', 'placeholder' => 'Entre 13 y 16 numeros')))
No se si me puedan ayudar me marca un error un poco extraño al generar las entities
Call to a member function getNamespacename() on a non-object in /var/www/html/proyectos/Noticias_Promovision/vendor/bundles/Doctrine/Bundle/DoctrineBundle/Mapping/MetadataFactory.php on line 82
Hola de nuevo Javier. Varias veces he tratado de instalar la aplicación, pero cada vez que lo hago, siguiendo las instrucciones, al momento de ejecutar el comando php app/console assetic:dump --env=prod --no-debug, me arroja el siguiente error:
PHP Fatal error: Call to undefined function doctrine\Common\Cache\apc_fetch()..........
Soy nuevo en symfony y quizas me estoy perdiendo de algo o tengo mal configurado el apc para symfony....
Saludos....
Hola,
No sé si es porque me he equivocado en algo o me he olvidado de alguna cosa. En la página de editar el perfil, que si que me funciona cuando hago algún cambio y lo actualiza correctamente con la bbdd. Lo que yo tengo es que los dos campos de contraseña me siguen apareciendo como dos campos obligatorios, por lo tanto si yo solo quiero cambiar el nombre por ejemplo, me veo obligado a rellenar también las dos contraseñas.
Lo que yo quiero hacer es que en mi plantilla perfil.html.twig no sea "required" el campo password.
{{ form_widget(formulario.password }}
Consultándolo por mi cuenta creía que añadiendo attr me podría funcionar, pero no me funciona.
{{ form_widget(formulario.password, { 'attr': { 'required' : 'false' } }) }}
Alguien me puede ayudar?
Muchas gracias por tu fantástico libro, no he adquirido suficiente vocabulario para expresar mi agradecimiento por todo lo que estoy aprendiendo.
Estoy siguiendo el libro y al llegar a llegar al capitulo 5.4.2 cargando el primer archivo de datos, con el comando:
php app/console doctrine:fixtures:load
me da el siguiente error
PHP Fatal error: Declaration of Cupon\CiudadBundle\DataFixtures\ORM\ciudades::load() must be compatible with that of Doctrine\Common\DataFixtures\FixtureInterface::load() in /home/pedro/proyectos/cupon/src/Cupon/CiudadBundle/DataFixtures/ORM/Ciudades.php on line 8
Estoy utilizando Symfony v2.0.9
El archivo ciudades.php contiene el siguiente codigo:
'Madrid', 'slug' => 'madrid'), array('nombre' => 'Barcelona', 'slug' => 'barcelona'), ); foreach ($ciudades as $ciudad) { $entidad = new Ciudad(); $entidad->setNombre($ciudad['nombre']); $entidad->setSlug($ciudad['slug']); $manager->persist($entidad); } $manager->flush(); } ``` } He probado también el código de ciudades.php incluido en la aplicación cupon y el error es el mismo Gracias Pedro Sastrehola me estoy iniciando con Symfony2, siguiendo el libro de Javier. Pues bien, tengo el siguiente problema al ejecutar doctrine:fixtures:load, me salta el error Fatal error: Class 'Doctrine\Common\DataFixtures\Loader' not found in /var/www/Miproyecto/vendor/bundles/Symfony/Bundle/DoctrineFixturesBundle/Common/DataFixtures/Loader.php on line 11, sin embargo me voy al directorio y esta el Loader. El archivo provincias.php contiene el siguiente código:
'Granada', 'slug' => 'granada'), array('nombre' => 'Málaga', 'slug' => 'malaga'), ); foreach ($provincias as $provincia){ $entidad = new Provincia(); $entidad->setNombre($provincia['nombre']); $entidad->setSlug($provincia['slug']); $manager->persist($entidad); } $manager->flush(); } } El cambio de Ciudades a Provincias es porque estoy utilizando dos entidades dentro del CiudadBundle con la intención de mas adelante dar opción a elegir la provincia y la localidad. Espero que me puedan ayudar, porque me trae de cabeza, gracias de antemano.Hola Javier,
Estoy probando tu aplicación, y he visto en el directorio de ficheros que la carpeta css está vacía. No aparece ningún estilo y al navegar por la aplicación, evidentemente aparece totalmente plana, con texto...
Una vez levantados los servicios de Apache y MySQL... accedo a la aplicación, pero haciendo click en oferta del día, o mi perfil, no termina de cargar la siguiente página... va lento....
Gracias de antemano por tu ayuda...
Buenas, les comento que es mi primera epxeriencia en Symfony, y la estoy haciendo siguiendo el libro de Javier Eguiluz.
En estos momentos me encuentro trabado en la sección 5.4.2, "Creando el primer archivo de datos".
Haciendo un repaso rápido, tengo instalado los fixtures para Doctrine 2, o eso espero.
Registré el namespace en el autoload.php
[...]
'JMS' => DIR.'/../vendor/bundles',
'Doctrine\Common\DataFixtures' => DIR.'/../vendor/doctrine-fixtures/lib',
'Doctrine\Common' => DIR.'/../vendor/doctrine-common/lib',
'Doctrine\DBAL' => DIR.'/../vendor/doctrine-dbal/lib',
[...]
Activé el Bundle en AppKernel.php
[...]
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\DoctrineFixturesBundle\DoctrineFixturesBundle(),
new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
[...]
Entre tantas cosas que devuelve el comando php app/console, encuentro lo siguiente:
[...]
doctrine:fixtures:load Load data fixtures to your database.
[...]
Creo el archivo de datos como sugiere el libro, lo cree por primera vez a mano, luego copie y pegué. Y al ejecutar php app/console doctrine:fixtures:load la consola devuelve:
PHP Fatal error: Class 'Doctrine\Common\DataFixtures\Loader' not found in /media/Datos/www/cupon/vendor/bundles/Symfony/Bundle/DoctrineFixturesBundle/Common/DataFixtures/Loader.php on line 11
Agradecería cualquier tipo de ayuda. Soy primerizo en Symfony, ya que arranqué desde esta versión (Symfony version 2.0.12 - app/dev/debug) sin tocar ninguna 1.x
Desde ya muchas gracias.
Nota: ¿Cómo coloreo la sintaxis? ¿Cómo "quoteo"?.
Javier, en la página 168, refiriéndote a la última extensión de twig, muestras un ejemplo con javascript en la cual utilizas document.getElementById y le pasas "tiempo" lo que hace que no te devuelva nada pues la etiqueta tiempo es una class y no un id. Por supuesto, busqué si existia getElementByClass :) y sorprendentemente no existe. Saludos
Al ejecutar el comando:
phpunit -c app
Arroja los siguientes mensajes:
PHPUnit 3.5.14 by Sebastian Bergmann.
.F..EE.F........F.
Time: 30 seconds, Memory: 26.25Mb
There were 2 errors:
C:\xampp\htdocs\cupon\vendor\symfony\src\Symfony\Component\DomCrawler\Crawler.php:567
C:\xampp\htdocs\cupon\src\Cupon\OfertaBundle\Tests\Controller\DefaultControllerTest.php:93
C:\xampp\htdocs\cupon\vendor\symfony\src\Symfony\Component\DomCrawler\Crawler.php:567
C:\xampp\htdocs\cupon\src\Cupon\OfertaBundle\Tests\Controller\DefaultControllerTest.php:109
There were 3 failures:
C:\xampp\htdocs\cupon\src\Cupon\OfertaBundle\Tests\Controller\DefaultControllerTest.php:54
C:\xampp\htdocs\cupon\src\Cupon\OfertaBundle\Tests\Controller\DefaultControllerTest.php:140
C:\xampp\htdocs\cupon\src\Cupon\OfertaBundle\Tests\Twig\Extension\CuponExtensionTest.php:66
�[37;41m�[2KFAILURES!
�[0m�[37;41m�[2KTests: 18, Assertions: 37, Failures: 3, Errors: 2.
�[0m�[2K
Nota: Seguí las instrucciones indicadas en: #14 (comment) ya que el comando php app/console assetic:dump también arrojaba problemas.
Hola Javier, estoy siguiendo el libro al pie de la letra (o eso creo), y creando la lista de ciudades con el codigo que aparece en el libro:
<select id="ciudadseleccionada">
{% for ciudad in ciudades %}
<option value="{{ ciudad.slug }}">{{ ciudad.nombre }}</option>
{% endfor %}
</select>
<script type="text/javascript">
var lista = document.getElementById("ciudadseleccionada");
var ciudad = lista.options[lista.selectedIndex].value;
lista.onchange = function() {
var url = {{ path('portada', { 'ciudad':ciudad }) }};
};
</script>
Recibo constantemente el error de que ciudad no existe en la linea 13, esta claro que es algun fallo de compatibilidad con twig, que no reconoce la variable, pero no se que hacer para arreglarlo. He hecho todas las pruebas que se me han pasado por la cabeza pero no ha habido forma.
Espero una respuesta, a nadie mas que siga el libro le ha pasado esto???
Muchas gracias de antemano.
PD: tampoco he sabido poner el codigo para que no se interprete, y lo he intentado
Cuando se pincha en el enlace de cualquier oferta para ver sus detalles, no es muestra su información sino la de cualquier otra oferta.
Saludos, tengo una duda con respecto a la validacion cuando se edita el perfil del usuario.(Capitulo 8.8.1)
El password del usuario en el Entity posee el siguiente Assert:
@Assert\MinLength(6)
Y el formulario UsuarioType para el password indica:
'required' => false
Como es posible entonces, que, si editamos nuestro perfil y dejamos el password en blanco, al realizar $formulario->isValid() dentro de perfilAction, la respuesta sea true ?
Este es el codigo que tengo ahora dentro de perfilAction() cuando el request es de tipo POST:
if ($peticion->getMethod() == 'POST') { // Estan enviando un formulario listo
$password_original = $usuario->getPassword(); // Almaceno el password original antes de hacer el bind
$this->get('logger')->info('Antes de hacer bind el password es : '.$usuario->getPassword());
$formulario->bindRequest($peticion); // Luego de esto, $usuario ya tiene cargados todos los campos del formulario
$this->get('logger')->info('Despues de hacer bind el password es : '.$usuario->getPassword());
if($formulario->isValid()){
if($usuario->getPassword() == null){
$usuario->setPassword($password_original);
}else{
$encoder = $this->container->get('security.encoder_factory')->getEncoder($usuario);
$password = $encoder->encodePassword($usuario->getPassword(),$usuario->getSalt());
$usuario->setPassword($password);
}
$em = $this->getDoctrine()->getEntityManager();
$em->persist($usuario);
$em->flush();
$this->getRequest()->getSession()->setFlash('info', 'Sus datos fueron actualizados');
return $this->redirect($this->generateUrl('portada', array('ciudad' => $usuario->getCiudad()->getSlug())));
}
Elimina el directorio src/Acme
• Quita las rutas _welcome, _demo y _demo_secured del archivo app/config/routing_dev.yml
• Borra el registro del bundle en el archivo app/AppKernel.php (quita la línea $bundles[] =new Acme\DemoBundle\AcmeDemoBundle();)
• Elimina su namespace del archivo app/autoload.php (línea 'Acme' => DIR.'/../
src',)
El ultimo punto no existe en el archivo autoload.php, y cuando entro a:
http://cupon.local/app_dev.php
Se genera una exception
No route found for "GET /"
404 Not Found - NotFoundHttpException
1 linked Exception: ResourceNotFoundException »
[2/2] NotFoundHttpException: No route found for "GET /"
[1/2] ResourceNotFoundException:
Logs
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onKernelRequest".
Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelException".
Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException".
Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /" (uncaught exception) at /var/www/cupon/app/cache/dev/classes.php line 4560
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\AsseticBundle\EventListener\RequestListener::onKernelRequest".
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector::onKernelController".
Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController".
Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController".
Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController".
Notified event "kernel.controller" to listener "JMS\SecurityExtraBundle\Controller\ControllerListener::onCoreController".
Que puedo hacer para no tener ese error...
Gracias....
He instalado el DataFixtures correctamente ya que el comando funciona. Por otro lado he creado la carpeta DataFixtures/ORM dentro del Bundle de CiudadBundle y el archivo ciudad.php.
He puesto este código:
<?php
namespace Symfony\CiudadBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Cupon\CiudadBundle\Entity\Ciudad;
class ciudades implements FixtureInterface{
public function load($manager){
$ciudades = array(
array('nombre' => 'Madrid', 'slug' => 'madrid'),
array('nombre' => 'Barcelona', 'slug' => 'barcelona')
);
foreach ($ciudades as $ciudad) {
$entidad = new Ciudad();
$entidad->setNombre($ciudad['nombre']);
$entidad->setSlug($ciudad['slug']);
$manager->persist($entidad);
}
$manager->flush();
}
}
Me sale el siguiente error al ejecutar el fixture:
Fatal error: Class 'Doctrine\Common\DataFixtures\Loader' not found in /Applications/MAMP/htdocs/Symfony/vendor/bundles/Symfony/Bundle/DoctrineFixturesBundle/Common/DataFixtures/Loader.php on line 11
buenos días. He estado intentando solucionar mi problema mirando el google pero no lo consigo, así que les comento mi error, a ver si alguien puede ayudarme. Les pongo en contexto:
Cuando ejecutaba el comando 2.- php app/console doctrine:schema:create
Me daba este error:
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Busqué al google y cambie el tamaño del campo mail
(string de 200, campo único) a (string de 100, campo único) de la entity Usuario
. Esto soluciono el error y pude pasar al paso 3. Sin embargo cuando ejecuto el comando: php app/console init:acl
Me salta el mismo error que antes y no se como puedo arreglarlo.
A parte de lo comentoado no he cambiado nada del codigo y la version de symfony es la 2.0.15.
¿Alguien puede aconsejarme?
Saludos, he estado haciendo unas pruebas con curl para evaluar los headers HTTP y me he dado cuenta de que la respuesta que genera la aplicación usa el protocolo HTTP/1.0:
> GET / HTTP/1.1
> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: cupon.local
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 302 Found
< Date: Tue, 22 May 2012 18:50:44 GMT
< Server: Apache
< X-Powered-By: PHP/5.3.10-1ubuntu3.1
< Set-Cookie: PHPSESSID=0q3stmkt0pvorm0mv90fnoqtu0; path=/
< location: /es/barcelona
< cache-control: no-cache
< x-symfony-cache: GET /: stale, invalid
< Vary: Accept-Encoding
< Content-Length: 341
< Connection: close
< Content-Type: text/html; charset=UTF-8
No se si es algún problema de configuracion, pero efectivamente el constructor de la clase Response en app/cache/dev/classes.php tiene:
public function __construct($content = '', $status = 200, $headers = array())
{
$this->headers = new ResponseHeaderBag($headers);
$this->setContent($content);
$this->setStatusCode($status);
$this->setProtocolVersion('1.0');
if (!$this->headers->has('Date')) {
$this->setDate(new \DateTime(null, new \DateTimeZone('UTC')));
}
}
El comando que estoy usando para analizar los header es:
curl http://cupon.local/app_dev.php -v > /dev/null
Alguien más tiene este problema? Alguna sugerencia para solucionarlo?
Muchas gracias.
Gracias!
Buenas tardes,
Estamos siguiendo el libro, intentando adaptar lo que vamos aprendiendo a nuestro proyecto, y nos hemos encontrado con la siguiente dificultad que no sabemos cómo resolver, y os explico:
En la parte del libro dónde se explica "Ejecutando código después del login", en las funciones del Listener que hemos creado, a parte de recoger el token asociado con el usuario que acaba de hacer el login, y a partir de él, obtener el usuario, necesitamos recoger del formulario de login otro input más, para junto con el usuario, realizar una consulta a la BBDD y los valores devueltos almacenarlos en la sesión del usuario.
Estamos un poquito perdidos puesto que estamos empezando y no sabemos cómo hacerlo. Os agradeceríamos que alguien nos pudiera echar una mano. Muchas gracias por adelantado.
Mirando un poco por encima la base de datos de la aplicación he visto que en mi caso los campos de textos tienen una codificación latin_swedish. ¿Es esto correcto? Me parecia que debieran estar en UTF-8. ¿Cómo podria cambiarlo si no es asi?
Peumayen@PEUMAYEN-PC /c/cupon (master)
$ php app/console assetic:dump --env=prod --no-debug
Dumping all prod assets.
Debug mode is off.
[file+] C:\cupon\app/../web/css/backend.css
[RuntimeException]
El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del
volumen no son correctos.
assetic:dump [--watch] [--force] [--period="..."] [write_to]
Peumayen@PEUMAYEN-PC /c/cupon (master)
$
Hi. i got the following error when trying to load the fixtures.
It happens when trying to load Ventas fixtures.
[ErrorException]
Runtime Notice: Only variables should be passed by reference in G:\htdocs\sf
upon\Cupon\vendor\doctrine\lib\Doctrine\ORM\Id\AssignedGenerator.php line 58
Buenas,
baje la version actual (2.0.10) y al ejecutar:
RedEye@rockOTO:/srv/www/htdocs/CuponFull> php bin/vendors install
Installing/Updating symfony
Cloning into /srv/www/htdocs/CuponFull/vendor/symfony...
error: RPC failed; result=22, HTTP code = 417
fatal: The remote end hung up unexpectedly
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor/symfony: No existe el fichero o el directorio
eso para symfony
luego salen otros mas:
Installing/Updating doctrine-dbal
Cloning into /srv/www/htdocs/CuponFull/vendor/doctrine-dbal...
error: RPC failed; result=22, HTTP code = 417
fatal: The remote end hung up unexpectedly
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor/doctrine-dbal: No existe el fichero o el directorio
Installing/Updating doctrine
Cloning into /srv/www/htdocs/CuponFull/vendor/doctrine...
error: RPC failed; result=22, HTTP code = 417
fatal: The remote end hung up unexpectedly
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor/doctrine: No existe el fichero o el directorioInstalling/Updating AsseticBundle
Cloning into /srv/www/htdocs/CuponFull/vendor//bundles/Symfony/Bundle/AsseticBundle...
remote: Counting objects: 1811, done.
remote: Compressing objects: 100% (549/549), done.
remote: Total 1811 (delta 1099), reused 1758 (delta 1053)
Receiving objects: 100% (1811/1811), 237.36 KiB | 134 KiB/s, done.
Resolving deltas: 100% (1099/1099), done.
error: Failed connect to github.com:80; Connection refused while accessing http://github.com/symfony/AsseticBundle.git/info/refs
fatal: HTTP request failed
Installing/Updating doctrine-fixtures
Cloning into /srv/www/htdocs/CuponFull/vendor/doctrine-fixtures...
error: Failed connect to github.com:80; Connection refused while accessing http://github.com/doctrine/data-fixtures.git/info/refs
fatal: HTTP request failed
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor/doctrine-fixtures: No existe el fichero o el directorio
Installing/Updating DoctrineFixturesBundle
Cloning into /srv/www/htdocs/CuponFull/vendor//bundles/Symfony/Bundle/DoctrineFixturesBundle...
error: Failed connect to github.com:80; Connection refused while accessing http://github.com/symfony/DoctrineFixturesBundle.git/info/refs
fatal: HTTP request failed
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor//bundles/Symfony/Bundle/DoctrineFixturesBundle: No existe el fichero o el directorio
Installing/Updating AsseticBundle
Cloning into /srv/www/htdocs/CuponFull/vendor//bundles/Symfony/Bundle/AsseticBundle...
remote: Counting objects: 1811, done.
remote: Compressing objects: 100% (549/549), done.
remote: Total 1811 (delta 1099), reused 1758 (delta 1053)
Receiving objects: 100% (1811/1811), 237.36 KiB | 134 KiB/s, done.
Resolving deltas: 100% (1099/1099), done.
error: Failed connect to github.com:80; Connection refused while accessing http://github.com/symfony/AsseticBundle.git/info/refs
fatal: HTTP request failed
Installing/Updating doctrine-fixtures
Cloning into /srv/www/htdocs/CuponFull/vendor/doctrine-fixtures...
error: Failed connect to github.com:80; Connection refused while accessing http://github.com/doctrine/data-fixtures.git/info/refs
fatal: HTTP request failed
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor/doctrine-fixtures: No existe el fichero o el directorio
Installing/Updating DoctrineFixturesBundle
Cloning into /srv/www/htdocs/CuponFull/vendor//bundles/Symfony/Bundle/DoctrineFixturesBundle...
error: Failed connect to github.com:80; Connection refused while accessing http://github.com/symfony/DoctrineFixturesBundle.git/info/refs
fatal: HTTP request failed
sh: línea 0: cd: /srv/www/htdocs/CuponFull/vendor//bundles/Symfony/Bundle/DoctrineFixturesBundle: No existe el fichero o el directorio
el resto carga y copia los archivos con normalidad.
Que puede estar pasando? es un problema de version?
Gracias por la ayuda.
Buenos días,
Tengo el siguiente error a la hora de hacer login en la extranet de la app.
Los pasos que sigo son:
La pantalla de login se presenta bien, pero al poner nombre de usuario y contraseña, da igual que lo ponga bien o mal, siempre tengo la misma respuesta:
"Unrecognized field: login"
Y siempre hablan de:
FOS\UserBundle\Entity\User
Pero si esto es así, no se como encajarlo en mi proyecto.
¿Que puede estar pasando?.
Gracias
Me he encontrado con varios problemas en esta parte. Por un lado, cuando se publican los assets, las imágenes de prueba se quedan en el directorio web/bundles/oferta/images/, por lo que para que en oferta.html.twig, en lugar de cargarlas así:
deberían cargarse así:
Pero claro, esto sólo funcionaría para los ejemplos que se cargan en los fixtures, ya que cuando se crea una oferta nueva, la imagen sí que se especifica que se guarde en el directorio uploads, ya que viene especificada en el config.yml. Por cierto, para poder crear una oferta, es necesario haber creado el directorio uploads/images y haberle dado permisos de escritura, igual convendría aclararlo en el Readme.
Entiendo que si la ruta de las imágenes está parametrizada, se debería acceder desde twig a esa parametrización en lugar de como he descrito arriba. Y si el directorio finalmente es /uploads/images/, pues o bien explicar en el Readme que hay que copiar allí las imágenes de prueba o bien realizarlo en alguna de las tareas (carga de fixtures o publicación de los assets).
Bueno, son sólo ideas, no sé muy bien cómo abordarlas, espero que te sirvan :)
Soy completamente nuevo en esto de Symfony, y me he comprado el libro de Javier, que tiene muy buena pinta, pero la primera en la frente, porque no logro pasar del tema 2, pues no consigo instalar la aplicación cupon:
Aviso que trabajo con Windows 7, wamp con php 5.3.4
He seguido estos pasos hasta el paso 4 sin relativo problema
Clono el repositorio: git clone git://github.com/javiereguiluz/Copon.git cupon //Ok sin problema
Entro en el directorio cupon // Ok, sin problema
Selecciono la rama git checkout 2.0 // Ok, sin problema
Intento ejecutar php bin/vendors install, pero como no encuentra el php, que lo tengo en el disco D, me funciona si pongo:
/D/servers/wamp/bin/php/php5.3.4/php bin/vendors install
// Y aquí en empiezan los problemas:
Primero me dice: PHP Warning: PHP Startup: Unable to load dynamic library D:/servers/wamp/bin/php/php5.3.4/ext/php_ming.dll' - %1 no es una aplicacion Win32 valida
y eso que ya he deactivado el php_ming.dll, como me ha dicho Javier,
Pero luego se cargan un montón de cosas
Luego, ejecuto "chmod -R 777 app/cache app/logs". Pero como no están los directorios "cache" y "logs", los he creado a mano, y así sí me ha dejado ejecutar esa orden
Creo que el web server ya está configurado, porque lo uso mucho para otras webs.
Me aseguro de que php_apc.dll está instalada (me ha costado un güebo, pero ya la he instalado)
Pero ahora voy a ver la página con la ruta http://localhost/cupon/web/config.php, para configurar el sitio online con el formulario de symfony, y me sale el contenido de la página de configuracion de sympfony pero sin estilos, toda descuajeringada... y cuando hago clic en "Configure your Symfony Application online", no se carga nada.
It seems that there are missed files.
loading Cupon\OfertaBundle\DataFixtures\ORM\ofertas
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 32 bytes) in /Users/Ricky/Documents/Desarrollo/elmundo.es/editores/cupon/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php on line 449
La instancia de UnitOfWork, al cargar las fixtures, sobrepasa la cantidad de memoria que tenía definida en php.ini.
La solución
Incrementar la cantidad permitida para un script dentro de php.ini en la directiva memory_limit. (Cuidado con esto para aplicaciones en producción con muchos procesos corriendo).
Saludos,
Ricky.
al momento de ejecutar el comando app/console init:acl me encuetro con este problema
estoy desarrollando con mamp pro en mac os 10.7.04
[PDOException]
could not find driver
si alguien me pudiera ayudar, gracias!
Time: 3 seconds, Memory: 49.25Mb
There were 4 errors:
/var/www/Cupon/vendor/symfony/src/Symfony/Component/DomCrawler/Crawler.php:412
/var/www/Cupon/src/Cupon/OfertaBundle/Tests/Controller/DefaultControllerTest.php:79
/var/www/Cupon/vendor/symfony/src/Symfony/Component/DomCrawler/Crawler.php:567
/var/www/Cupon/src/Cupon/OfertaBundle/Tests/Controller/DefaultControllerTest.php:93
/var/www/Cupon/vendor/symfony/src/Symfony/Component/DomCrawler/Crawler.php:567
/var/www/Cupon/src/Cupon/OfertaBundle/Tests/Controller/DefaultControllerTest.php:109
/var/www/Cupon/vendor/symfony/src/Symfony/Component/DomCrawler/Crawler.php:567
/var/www/Cupon/src/Cupon/UsuarioBundle/Tests/Controller/DefaultControllerTest.php:36
There was 1 failure:
/var/www/Cupon/src/Cupon/OfertaBundle/Tests/Controller/DefaultControllerTest.php:54
when you install the "cupon" bundle "inside" a path (ie: cupon is not installed in root path "/"), images url are wrong.
I think that it should work everywhere if you remove the slash "/" in directorio_imagenes config option.
kikov@onuba1:~/public_html/cupon/app/config$ git diff
diff --git a/app/config/config.yml b/app/config/config.yml
index c550309..c2343be 100755
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -24,7 +24,7 @@ twig:
strict_variables: %kernel.debug%
globals:
ciudad_por_defecto: %cupon.ciudad_por_defecto%
directorio_imagenes: '/uploads/images/'
directorio_imagenes: 'uploads/images/'
Hola a todos:
Estoy con el libro de javier y con la versión de Symfony 2.0.16. Pues estoy en la pag 85 intentando cargar los fixtures. Pero aún teniendo en cuenta las líneas que había que cambiar
use Doctrine\Common\Persistence\ObjectManager;
public function load(ObjectManager $manager)
me sigue dando el mismo error:
Fatal error: Class 'Doctrine\Common\DataFixtures\Loader' not found in /var/www/cupon/vendor/bundles/Symfony/Bundle/DoctrineFixturesBundle/Common/DataFixtures/Loader.php on line 11
Por favor, se que el tema está cerrado, pero estoy desesperado. Llevo dos días intentando solucionarlo...Muchas gracias de antemano.
el código usado es:
namespace cupon\CiudadBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use cupon\CiudadBundle\Entity\Ciudad;
class ciudades implements FixtureInterface
{
public function load(ObjectManager $manager)
{
$ciudades = array(
array('nombre'=> 'Madrid','slug'=>'madrid'),
array('nombre'=> 'Barcelona','slug'=>'barcelona'),
//...
);
foreach ($ciudades as $ciudad) {
$entidad = new Ciudad();
$entidad->setNombre($ciudad['nombre']);
$entidad->setSlug($ciudad['slug']);
$manager->persist($entidad);
}
$manager->flush();
}
}
Hola de nuevo, sigo trasteando con symfony a partir del libro, y me encuentro estancado en la extension que mustra la cuenta atras, obtengo el siguiente error:
An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class DateTime could not be converted to string in /home/edu/NetBeansProjects/micupon/app/cache/dev/twig/df/2c/b3c1fe80fff3e80ccc04a14e625f.php line 44") in OfertaBundle:Default:includes/oferta.html.twig at line 14.
que al principio apuntaba a la linea 89 de cuponExtension, la cual no existia, y ahora como veis el error aparece en cache/dev/twig que tampoco se porqué...
he observado que en la aplicacion publicada se obtienen los valores de la fecha mediante json_encode, en vez de la forma en que se hace en el libro, no se si tendra que ver.
En qué puedo estar fallando??
Gracias x la atencion
Al buscar la oferta del día, el OfertaRepository ejecuta el query con:
return $consulta->getSingleResult();
Lo que genera una Excepcion:
No result was found for query although at least one row was expected.
Cuando se intenta buscar una oferta para una ciudad que no existe.
Propongo cambiar el return por:
return = $consulta->getOneOrNullResult() ;
De esta forma si no se consigue la oferta, devuelve NULL y el controlador genera un 404.
Si no quieres cambiar el deps para mover a los usuarios a la última versión estable de Symfony (2.0.4) porque no lo hayas testeado, al menos cambialo para que sea 2.0.3 en lugar de 2.0.2 porque sino el archivo parameters.ini no carga correctamente.
http://symfony.com/blog/symfony-2-0-3-released
No logro ejecutar la aplicación, tras seguir todos los pasos de instalación y uso. Al tratar de ejecutarla en cualquier ruta se paraliza el servicio del webserber y logro ver este mensaje en el log de errores de apache.
[crit](OS 5)Acceso denegado. : master_main: WaitForMultipeObjects WAIT_FAILED -- doing server shutdown
Trabajo bajo windows 7 x64 y tengo otras aplicaciones de symfony corriendo, incluso en paralelo hago el tutorial de http://tutorial.symblog.co.uk/ sin problemas.
Hola buenas, llevo un par de días intentando instalar Cupon en Windows (Apache 2.2 y PHP 5.3), pero al ejecutar el comando 'php app/console assetic:dump --env=prod --no-debug' durante la instalación obtengo el siguiente error: http://img69.imageshack.us/img69/4523/imagen0i.jpg
El directorio web/css/ queda vacío.
Luego al cargar en el navegador 'http://cupon.local/app_dev.php' se carga la página pero por supuesto sin estilos: http://img210.imageshack.us/img210/851/imagentg.jpg
La secuencia de comandos que ejecuto son:
DESCARGAR E INSTALAR LA APLICACION
1º) git clone https://github.com/javiereguiluz/Cupon.git cupon
2º) php bin/vendors install (entrar primero en cupon)
3º) chmod -R 777 app/cache app/logs
CONFIGURAR BD Y DESPUES:
1º) php app/console doctrine:schema:create
2º) php app/console init:acl
3º) php app/console doctrine:fixtures:load
4º) php app/console assetic:dump --env=prod --no-debug
Un saludo
Hola Javi,
estoy probando a instarme la aplicación y al cargar los fixtures me salta este error
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table referenced in a foreign key constraint (cupon
.venta
, CONSTRAINT FK_4E26C151DB38439E
FOREIGN KEY (usuario_id
) REFERENCES cupon
.Usuario
(id
))
Genial aporte javier!!
En el backend hay un detalle siempre muestra los usuarios de Barcelona(ciudad del admin) en listado supongo que el admin deberia verlos todos ¿o no?
cambiando el método indexAction del conttorlador de usuario del backend podemos resolverlo.
//No hago fork porque son un par de lineas. src/Cupon/BackendBundle/Controller/UsuarioController.php
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$paginador = $this->get('ideup.simple_paginator');
//eliminamos : $slug = $this->getRequest()->getSession()->get('ciudad');
$entities = $paginador->paginate(
//cambiamos : $em->getRepository('CiudadBundle:Ciudad')->queryTodosLosUsuarios($slug)
//por:
$em->getRepository('UsuarioBundle:Usuario')->findAll()
)->getResult();
return $this->render('BackendBundle:Usuario:index.html.twig', array(
'entities' => $entities,
'paginador' => $paginador
));
}
Estaba viendo de que el sistema a la hora de generar el slug, no tiene en cuenta cuando una oferta tiene el mismo titulo que otra, es decir, si tengo una oferta titulada "Promoción 1" y otra con el mismo titulo, entonces el slug sería igual al otro, y eso no debería pasar, porque tienen que ser únicos.
Siguiendo los pasos para la instalación, en el paso de carga de fixtures, falla:
$ php app/console doctrine:schema:create
ATTENTION: This operation should not be executed in a production environment.
Creating database schema...
Database schema created successfully!
$ php app/console doctrine:fixtures:load
purging database
loading Cupon\CiudadBundle\DataFixtures\ORM\ciudades
loading Cupon\TiendaBundle\DataFixtures\ORM\tiendas
loading Cupon\OfertaBundle\DataFixtures\ORM\ofertas
[PDOException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'cupon.acl_object_identities' doesn't exist
El test src/Cupon/OfertaBundle/Tests/Controller/DefaultControllerTest.php
comprueba que la portada se genere en menos de medio segundo y con menos de 4 consultas a la base de datos.
Actualmente esta comprobación está mal hecha, ya que el código se encuentra al final del test, cuando el navegador de pruebas ya no está en la portada sino que ha navegado hasta otra página.
Buenas, estoy corriendo app_dev.php y me devuelve el siguiente error:
Item "nombre" for "" does not exist in OfertaBundle:Default:portada.html.twig at line 21
Según la bilbiografía es porque no encontró una oferta que satisfaga las condiciones de la consulta en el controlador.
He pobrado cambiar:
$oferta = $em->getRepository('OfertaBundle:Oferta')->findOneBy(array( 'ciudad' => 1, 'fecha_publicacion' => new \DateTime('today')));
Por:
$oferta = $em->getRepository('OfertaBundle:Oferta')->findOneBy(array( 'ciudad' => 1, 'fecha_publicacion' => new \DateTime('2012-05-14')));
Y por:
$oferta = $em->getRepository('OfertaBundle:Oferta')->findOneBy(array( 'ciudad' => 1, 'fecha_publicacion' => new \DateTime('2012-05-14 23:59:59')));
A modo de ver como quedaría la plantilla. Pero en todos los casos el error se repite.
Alguna sugerencia ?.
Saludos.
saludos Javier
Recien me estoy iniciando en el mundo de symfony
Y te agradezco en colgar este aplicativo para el aprendizaje de todos
pero tengo este problema
RuntimeException: Failed to write cache file "/var/www/cupon/app/cache/dev/classes.php".
Todo esto lo estoy haciendo desde ubuntu
agradesco por la ayuda
Hola Javier en el libro en la pagina 121 define portada:
pattern: /{ciudad}
defaults: { _controller: OfertaBundle:Default:portada }
_portada:
pattern: /
defaults: { _controller: OfertaBundle:Default:portada }
pero no me funciono hasta q coloque
portada:
pattern: /{ciudad}
defaults: { _controller: OfertaBundle:Default:portada, ciudad: null }
_portada:
pattern: /
defaults: { _controller: OfertaBundle:Default:portada, ciudad: null }
ese parametro ciudad:null hace referencia al valor por defecto??
saludos y gracias
Hola buenos días Javier, una disculpa de antemano si este no es el medio para postear este tipo de dudas. ando desarrollando una aplicación basándome en tu libro y la aplicación de cupón y me encuentro en la parte de actualizar la información de una tabla de la base de datos mediante un formulario el cual lleno previamente con datos de la misma, le llega la información al controlador desde el formulario, busco el objeto el cual actualizare mediante un id que me proporciono el form y a ese $objeto le agrego los campos restantes del form para después actualizar la info. de ese objeto en la base. vi que tu lo haces con solo persist del $objeto pero ami lo que me hace es crear uno nuevo. la pregunta es si hay otro modo de actualizar la información de ese objeto en la base o estaré haciendo algo mal?
Estoy probando la parte de RSS en mi aplicación como se hace en cupón. En el navegador Firefox funciona perfecto, pero no así en Google Chrome. ¿Alguien sabe como solucionar esto?. Lo tengo todo tal y como se explica en el libro.
Un saludo.
he tenido problemas al querer hacer el proyecto de tu libro desarrollo agil el problema que tengo es que saque los fixtures de este proyecto pero me marca el siguiente error al quererlas cargar:
Catchable Fatal Error: Argument 1 passed to Symfony\Component\Security\Acl\Domain\UserSecurityIdentity::fromAccount() must be an instance of Symfony\Component\Security\Core\User\UserInterface, instance of Cupon\TiendaBundle\Entity\Tienda given, called in /var/www/proyectos/cupon/src/Cupon/OfertaBundle/DataFixtures/ORM/Ofertas.php on line 107 and defined in /var/www/proyectos/cupon/vendor/symfony/src/Symfony/Component/Security/Acl/Domain/UserSecurityIdentity.php line 53
La verdad he buscado en todos lados no se si me puedas echar una mano
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.