Archive for PHP

octubre 23rd 2013

Ejecutar consulta SQL directamente en Zend Framework 2 – zf2

Número de lecturas: 9747
{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.

septiembre 3rd 2013

Cual es el mejor framework PHP ??

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

He visto que en varios lugares se habla al respecto voy a dar mi punto de vista.

Para mi Symfony2 y Zend Framework2 están un paso adelante y la comunidad que los respalda es excelente.

Existen varios libros y documentación que garantizan el aprendizaje y cada vez sacan nuevas cosas su desarrollo es permanente.

Por el momento trabajo con symfony2 y me gusta mucho.

Ambos tienen bundles o modules respectivamente y permiten agilitar el desarrollo además que agregan gran funcionalidad a los frameworks.

Links de interés: versión Symfony LTS http://symfony.com/download

versión ZF2 http://framework.zend.com/downloads/skeleton-app recomiendo el uso de Skeleton que sirve para definir la estructura de carpetas y utiliza bootstrap.

Bundles: http://knpbundles.com/

Modules: http://modules.zendframework.com/ 

Una mención especial merece Laravel que cuando lo he probado me ha dado la sensación de que existe mucho futuro y más aun con su versión Laravel 4 que tiene componentes propios y de Symfony2 una excelente opción.

CodeIgneiter muy discutido fácil de aprender pero esta descontinuado con las mejoras que permite ahora el lenguaje PHP.

Un amigo me mostro Yii me pareció rápido y practico de utilizar pero lo pondría en la categoría de microframework.

El mejor framework depende del proyecto que vas a realizar sin embargo hoy me decido por Symfony2.

Links:

CodeIgneiter: http://ellislab.com/codeigniter

Laravel: http://laravel.com/docs/quick

 

junio 5th 2013

Error al actualizar a Symfony 2.1.11 – kriswallsmith/assetic

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

Cuando realice la actualización utilizando:

composer update

Se presento un error en el bundle:

kriswallsmith/assetic

En pantalla se podia mirar el siguiente error:

PHP Fatal error: Declaration of Symfony\Bundle\AsseticBundle\Factory\Worker\UseControllerWorker::process() must be compatible with Assetic\Factory\Worker\WorkerInterface::process(Assetic\Asset\AssetInterface $asset, Assetic\Factory\AssetFactory $factory)

Para corregir este problema basta con corregir en el composer y colocar esta linea:

"require": {
...
"kriswallsmith/assetic": "1.1.0",
...
}

 

Y forzamos a utilizar una versión anterior de assetic.

De esta manera se soluciona.

 

Fuente:

https://github.com/symfony/AsseticBundle/pull/200

 

 

 

mayo 29th 2013

Nuevo version Framework PHP – Laravel 4

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

El día de ayer se realizó el lanzamiento de la versión 4 del framework PHP laravel que ya venía impresionando con su facilidad de uso desde su versión 3 donde se convirtió bastante popular y utilizado.

Entre las mejoras en esta nueva versión es que una base importante del mismo es el uso de symfony2 y doctrine, la instalación también se la realiza utilizando composer lo que facilita mucho la instalación y su mantenimiento.

Otro aspecto muy importante es que tiene una excelente documentación lo que facilita su aprendizaje y rápidamente despejar dudas.

Es un framework que vale la pena probar y para mí como para otros desarrolladores será una gran ventaja el que la base sea symfony2.

Detalles de la documentacion:

 

Sitio oficial:

http://laravel.com/

Documentacion:

http://laravel.com/docs/

Proyectos involucrados:

http://symfony.com

http://www.doctrine-project.org/