Archive for PHP

Marzo 12th 2015

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

Número de lecturas: 8237
{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: 3015
{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)

Octubre 25th 2013

Ladybug como instalar en Zend Framework 2 -ZF2

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

Ladybug reemplaza la salida de var_dump / print_r que mejora notablemente la salida en pantalla y sirve para mirar de una manera mejor los elementos de un arreglo.

En el sitio web se dice lo siguiente:

Ladybug provides an easy and extensible var_dump / print_r replacement for PHP 5.3+ projects. Any PHP variable, object or resource can be dumped to beautiful representation:

<?php
$var = array(
array(
'name' => 'Raul',
'age' => 29
),
array(
'name' => 'John',
'age' => 27
)
);

ladybug_dump($var)

 

Para que funcione en ZF2 tan solo se lo debe de instalar utilizando composer agregando en el archivo composer.json lo siguiente:
{
"require": {
"raulfraile/ladybug": "~1.0"
}
}

Para utilizarlo es necesario tan solo de colocar lo siguiente:
ladybug_dump($var)

Otros usos:

Extended objects/resources

Ladybug allows extending any object or resource to display richer information. For example, the ladybug-plugin-extra package provides built-in inspectors for MySQL resultsets or GD images:

<?php
    $connection = mysql_connect('localhost', 'dbuser', 'dbpassword');
    mysql_select_db('dbname', $connection);
    $result = mysql_query('SELECT * FROM user', $connection);

    ladybug_dump($result);

<?php
    $img = imagecreatefrompng(__DIR__ . '/images/ladybug.png');
    ladybug_dump($img);

Mas detalles:
https://github.com/raulfraile/Ladybug

https://github.com/raulfraile/ladybug/blob/master/doc/examples.md

Octubre 23rd 2013

Ejecutar consulta SQL directamente en Zend Framework 2 – zf2

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

Aunque resulte sencillo a veces se nos puede presentar la necesidad de ejecutar código SQL directamente y no hacer uso de ningún ORM sea doctrine o propel, también no exista necesidad de utilizar TableGateway puede ser que simplemente necesitemos utilizar un código SQL normal.

Para esto haremos uso de ResultSet.

Primero debemos definir el Adapter para conectarnos a la base de datos, actualmente lo tengo inicializado en un proyecto en el cual utilizo dos conexiones distintas una para ORACLE y otra para MySQL en el mismo proyecto.

La misma esta inicializada en el modulo en desarrollo dentro del archivo Module.php de esta manera dentro de la función: getServiceConfig y poderlo llamar desde mi controlador:

'Vendedor' => function ($sm) {
$dbAdapter = $sm->get('db1');
return $dbAdapter;
}

El db1 corresponde a la base de datos si solo se trabaja con una base de datos es suficiente colocar en vez de esa instrucción lo siguiente:

$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');

En el controlador se utiliza el siguiente codigo:

public function detalleAction() {
$db = $this->getServiceLocator()->get('Vendedor');
$sql = "SELECT * from user";
$statement = $db->query($sql);
$results = $statement->execute();
$returnArray = array();
foreach ($results as $result) {
$returnArray[] = $result;
}
return new ViewModel(array('users' => $returnArray));
}

Finalmente en la vista se coloca el siguiente código para poder ver los datos:

<h3>Detalles Vendedores</h3>
<table class="table">
<tr>
<th>Codigo</th>
<th>Name</th>
<th>Celular</th>
<th>&nbsp;</th>
</tr>
<?php foreach ($users as $user) : ?>
<tr>
<td><?php echo $this->escapeHtml($user['name']); ?></td>
<td><?php echo $this->escapeHtml($user['id']); ?></td>
<td>
<a href="<?php echo $this->url('dashboard', array('controller' => 'vendedor', 'action' => 'detalle', 'id' => $user['id'])) ?>">Detalle</a>
</td>
</tr>
<?php endforeach; ?>
</table>

Espero esta información les sea útil y la puedan divulgar si creen que es importante.