Archive for PHP

marzo 31st 2015

Mostrar cambios en ambiente de producción Symfony2

Número de lecturas: 4707
{lang: 'es-419'}

Algo muy común y que se resuelve de una manera sencilla es visualizar los cambios en el ambiente de producción (sucede desde symfony 1.x)

Y para mirar los cambios se debe simplemente limpiar la cache en el entorno de producción.

Para realizar se utiliza este comando desde la consola:

app/console cache:clear --env=prod --no-debug

Si nos muestra un error de permisos se debe utilizar el comando sudo y realizar la tarea de esta manera:

sudo app/console cache:clear --env=prod --no-debug

 

marzo 25th 2015

Agregar ultima fecha de modificación automaticamente en el CRUD de Symfony2

Número de lecturas: 3510
{lang: 'es-419'}

A veces es necesario ingresar directamente un registro a la base de datos el cual no debe ser manipulado previamente simplemente sirve como un campo de auditoria y de esta manera revisar en que fecha se realizo el cambio.

Cuando utilizamos el CRUD generado por Symfony2 nos genera en el update una función similar a esta:

public function updateAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
 
$entity = $em->getRepository('AppBundle:ControlCambios')->find($id);
 
if (!$entity) {
 
throw $this->createNotFoundException('Unable to find ControlCambios entity.');
}
 
$deleteForm = $this->createDeleteForm($id);
$editForm = $this->createEditForm($entity);
 
$editForm->handleRequest($request);
 
if ($editForm->isValid()) {
$em->flush();
 
return $this->redirect($this->generateUrl('controlcambios_edit', array('id' => $id)));
}
 
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
);
}

Simplemente para agregar este registro en el campo previamente creado basta con agregar la siguiente linea:

//Agrega directamente la fecha de la ultima revision
$entity->setFechaUltimaRevision(new \DateTime());

El método finalmente quedaría de la siguiente manera:

public function updateAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
 
$entity = $em->getRepository('AppBundle:ControlCambios')->find($id);
//Agrega directamente la fecha de la ultima revision
$entity->setFechaUltimaRevision(new \DateTime());
 
if (!$entity) {
 
throw $this->createNotFoundException('Unable to find ControlCambios entity.');
}
 
$deleteForm = $this->createDeleteForm($id);
$editForm = $this->createEditForm($entity);
 
$editForm->handleRequest($request);
 
if ($editForm->isValid()) {
$em->flush();
 
return $this->redirect($this->generateUrl('controlcambios_edit', array('id' => $id)));
}
 
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
);
}
marzo 12th 2015

Como sumar días a una variable date en twig – Symfony2

Número de lecturas: 12882
{lang: 'es-419'}

Hace unos días se presento la necesidad de sumar variables en twig, para ser precisos teniendo una fecha por ejemplo: 2015-01-04 necesito sumar 540 días para esto utilizo la plugin date_modify presente en twig .

Para realizar esta operación se debe realizar de la siguiente forma:

{% set modify = '540' %}
{% set date = "now"|date("m/d/Y") %}
 
{{ date|date_modify("+" ~ modify ~ " day")|date("m/d/Y") }}

Con esto el resultado seria: 08/31/2016

noviembre 8th 2013

Zend Framework 2 para usuarios Symfony 2 (Video)

Número de lecturas: 3383
{lang: 'es-419'}

Encontré un video muy interesante de _orso_ donde se detalla la similitud entre Zend Framework 2 y Symfony 2 que tienen varias características parecidas y que leyendo la documentación seria posible desarrollar con uno o con otro sin mayor problema.

Aca el video (esta en ingles)