domingo, 16 de diciembre de 2012

Primer acercamiento php - xajax

Recientemente me puse a probar xajax para unas cosas que deseamos realizar en la empresa. Este es mi primera prueba. Lo primero que realice fue descargar de la pagina oficial de xajax la versión estándar. Luego en coloque dentro de una carpeta de pruebas la carpeta descomprimida de xajax. Ahora si algo de codigo. 1   xajax_prueba.php
2  
3  
4  
5  <?php
6  
7  
8  
9  
/*
10  
11    Funciones para el llamado desde la vista
12  
13  */
14  
15  

16  
17  
function myFunction($arg)
18  
19  {
20  
21  
 $newContent "Value of $arg: ".$arg;
22  
23  
 $objResponse = new xajaxResponse();
24  
25  
 $objResponse->assign("SomeElementId","innerHTML"$newContent);
26  
27  
 return $objResponse;
28  
29  }
30  
31  

32  
33  
function myFunction2()
34  
35  {
36  
37  
 $objResponse = new xajaxResponse();
38  
39  
 $objResponse->assign("SomeElementId","innerHTML""prueba");
40  
41  
 return $objResponse;
42  
43  }
44  
45  

46  
47  
48  
49  ?>
50  

51  Test2.php
52  
53  
54  
55  <?php
56  
57  
58  
59  
/*
60  
61  Recomendaciones:
62  
63  No dejar espacios en la parte inicial y final de las etiquetas <?php ? >
64  
65  En el llamado a la funcion ej. onclick=xajax_myFunction('Funciona'); no
66  
67  y no ej. onclick=myFunction('Funciona'); no
68  
69  */
70  
71  

72  
73  
//Incluimos la libreria del xajax
74  
75  
include "xajax/xajax_core/xajax.inc.php";
76  
77  

78  
79  
//Incluimos el archivo con las funciones a usar
80  
81  
include "xajax_prueba.php";
82  
83  

84  
85  
//Instanciamos un objeto ajax
86  
87  
$xajax = new xajax();
88  
89  

90  
91  
//Registrar el nombre de la funcion que deseamos usar
92  
93  //Se pueden registrar varias que tengan en el archivo que se incluyo previamente
94  
95  
$xajax->registerFunction("myFunction");
96  
97  

98  
99  
//Se maneja cualquiera request del xajax
100  
101  
$xajax->processRequest();
102  
103  

104  
105  
//Se escribe $xajax->printJavascript("xajax/"); en el head del html
106  
107  //para generar lo necesario del javascript
108  
109  

110  
111  
//En el div colocar el nombre del elemento al que le colocamos la respuesta del innerHTML
112  
113  //Call the function from a JavaScript event or function in your application
114  
115  

116  
117  ?>
118  

119  <head><?php  $xajax->printJavascript("xajax/"); ?></head>
120  
121  
122  
123  <div id="SomeElementId"></div>
124  
125  <button onclick="xajax_myFunction('Funciona');"></pre>
El archivo test2.php es el que llama al xajax_prueba.php .

domingo, 25 de noviembre de 2012

Faltan ingenieros y programadores bilingües - El Colombiano

Faltan ingenieros y programadores bilingües - El Colombiano


Una muy buena mirada al mundo de la programación en el país, solo una perqueña correción a la información suministrada: Steve Jobs nunca programó.

Como hacer web services con Zend

 
Zend es un Framework para el desarrollo en PHP, lo que permite el desarrollo de la estructura permítiendo el desarrollo de aplicaciones Modelo-Vista-Controlador. De una forma eficiente.

Lo primero que se debe hacer es instalar Zend Framework, se puede descargar de: http://www.zend.com/en/products/server/downloads hay varios blogs que muestran como hacer este proceso, algunos usan xampp o zend server. Los links los dejo al final.
  
Luego de tener instalado y probado el zend, pasamos a la creación de un web service y un consumidor. Para esto primero debemos entender un poco de que se trata esto. Los web services permiten de forma estandar la integración de aplicaciones web mediante el uso de SOAP, XML, WSDL, UDDI entre otros. Esto permite la interacción de diferentes tecnologias sin necesidad de que sean iguales. Los WSDL son usados como descripciones de los servicios de los servicios web, SOAP se ocupa de la transferencia de los datos y XML es usado para la descripcion de los datos.

Para este ejemplo no es necesario hacer toda la estructura MVC, solo tener la librerias necesarias.

Empecemos:

Vamos a utilizar el componente Zend_Soap que permite la creación de los web services. 
Nuestro ejemplo se divide en tres partes:
myws.php → Tiene la implementación de los métodos
ws.php → genera el wsdl
client.php → invoca el wsdl y llama a los métodos con parámetros válidos

Lo primero es crear en nuestro directorio htdocs una carpeta llamada testSOAP la cual contendrá nuestros tres archivos anteriores y nuestra carpeta Zend con las librerias.

Lo primero es crear los métodos del web services: myws.php

 
1    <?php
2       
3      
/**
4       * Web service methods
5       */
6      
class myws
7      
{  
8          
/**
9           * Get the add of two numbers
10           *
11           * @param   int  $one   The first number
12           * @param   int  $two   The second number
13           * @return  int
14           */
15          
public function sumita($one$two)
16          {
17              
$add $one+$two;
18       return 
$add;
19          }
20  
21          
/**
22           * Get the add of two numbers
23           *
24           * @param   int  $one   The first number
25           * @param   int  $two   The second number
26           * @return  string
27           */
28          
public function restica($one$two)
29          {
30              
$minus $one-$two;
31       return 
sprintf('%d - %d = %d',$one,$two,$minus);
32          }
33            
34          
/**
35           * Get the add of all the numbers of array
36           *
37           * @param   array  $numbers  Array with numbers
38           * @return  int
39           */
40          
public function vectoAdd($numbers)
41          {
42              foreach(
$numbers as $actual)
43       {     
44            
$val $val+$actual;               
45       }
46            return 
$val;
47          }               
48       }
49  
?>


 
Luego de tener listo esto, vamos a crear nuestro ws.php



1    <?php
2      require_once('myws.php');
3   
4      if (
$_SERVER['QUERY_STRING'] == 'wsdl'
5       {
6          require_once(
'/../Zend/Soap/AutoDiscover.php');
7   
8          
$auto = new Zend_Soap_AutoDiscover();
9          
$auto->setClass('myws');
10          
$auto->handle();
11      }
12      else 
13       {
14          require_once(
'Zend/Soap/Server.php');
15   
16          
$wsdl sprintf(
17              
'http://%s%s?wsdl',
18              
$_SERVER['HTTP_HOST'],
19              
$_SERVER['SCRIPT_NAME']
20          );
21   
22          
$soapServer = new Zend_Soap_Server($wsdl);
23          
$soapServer->setClass('myws');
24          
$soapServer->handle();
25      }     
26  
?>


Ahora por último creamos el cliente al que llamaremos en el navegador: localhost/testWS/client.php

1   <?php
2      
require_once('Zend/Soap/Client.php');
3   
4       
$url 'http://localhost/testSOAP/ws.php?wsdl';
5   
6              
$client = new Zend_Soap_Client($url);
7  
8       echo 
$client->sumita(3,27);
9       echo 
"<br />\n";
10       echo 
$client->restica(10,3);
11       echo 
"<br />\n";
12       
$vect = array(3,2,5,1,5);
13       echo 
$client->vectoAdd($vect);
14  
?>



Para comprobar que todo funcione de manera correcta, primeros lanzamos:
http://localhost/testSOAP/ws.php?wsdl el cual en el navagador nos debe mostrar el wsdl que tiene la descripción de los servicios del web services.





-->
Asi pues vemos como construir un web services y su consumidor.
Links:

 

Como conectar Oracle con PHP


1. Instalar Oracle, PHP o zend server
2. crear BD en Oracle y tener el tsnames.ora
3. script php:

error_reporting (E_ALL);
$tnsName     = '//tnsNamedelaBD';  
$username     = 'usuario';
$password     = 'contraseña';
$conector = oci_connect($username, $password, $tnsName);

if (!$conector) 
{
      $e = oci_error();
echo 'Falla la conexión:'.htmlentities($e['message']);
} else 
{
    echo 'Conecto OK!';
    oci_close($conector);
}
?>

lunes, 12 de noviembre de 2012

Calabazas electrónicas Halloween 2012

Con los compañeros de la empresa nos pusimos en la tarea de crear nuestras calabazas para adornar nuestros respectivos lugares de trabajo para el Halloween 2012. 

El resultado :


Nuevo Sitio Web

Hola, un nuevo capítulo comienza. Pueden encontrar mis últimas ideas, proyectos, experimentos y cosas que voy aprendendiendo y construyend...