domingo, 8 de noviembre de 2009

Reusabilidad de código 'Las Funciones'

Uno de los errores o deficiencias en la creación y desarrollo de sitios y aplicaciones, es la repetición de código, haciéndolo más complejo además la posibilidad de errores de lógica son más frecuentes y difíciles de encontrar.

Las “funciones” aparecen como pequeños subprogramas creados por los desarrolladores donde se pueden realizar tareas de forma específica, para cada función una tarea o proceso. Esto facilita hacia el futuro encontrar o mejorar nuestro código. PHP al igual que otros lenguajes de programación tiene sus propias funciones nativas que facilitan procesos de forma eficaz y rápida. Ver manual PHP

Dentro de la Programación Orientada a Objetos, las funciones son llamadas métodos o comportamientos o acciones, realizando el mismo funcionamiento (realizar un tarea específica o proceso y retornando un valor).

Sintaxis


<?php

//date es una funcion de PHP
function getAnio() {

  $anio = date("Y");

  return $anio;

}

echo 'Este año es: '.getAnio();

?>

Función con parámetros, el numero de parámetros depende  en sí de la tarea o proceso a resolver.

<?php

function cumpleanio($anioNacimiento) {
 $anioActual = date("Y");
 $cumpleanio= $anioActual- $anioNacimiento;
 return $cumpleanio;
}
echo cumpleanio(1962);
?>


 
<?php

function encontrarNombre($array,$buscarNombre) {
   $encontrado = false;
   foreach($array as $nombre){
     if($nombre == $buscarNombre){
       $encontrado = 'Encontrado';
        break;
     }
   }
   if($encontrado == false){
     $encontrado = 'No enontrado';
   }
  return $encontrado;
}

$buscarNombre = 'andres';

//Esto puede ser una variable que proviene de un formulario
$nombres = array('carlos','andres','david','mariana');
//Esto puede estar en una Base de Datos
echo "El usuario $buscarNombre ".encontrarNombre($nombres, $buscarNombre);

?>


Funciones con parámetros tipo variables: pasar variable por valor o por referencia

<?php

$edad =47;
function  cambiarEdadPorValor($edad){
 return $edad++;
}
function  cambiarEdadPorReferencia(&$edad){
 return $edad++;
 }
cambiarEdadporValor($edad);
print $edad;
echo '<br>';
cambiarEdadporReferencia($edad);
print $edad;
?>

En  PHP5 cuando se pasa un Objeto como parámetro de una función o método siempre se pasa como referencia, indicando que cualquier modificación afectará el objeto en el tiempo de permanencia.

En  el siguiente enlace se encuentra una variedad de ejemplos sobre funciones : Tips de Funciones

miércoles, 4 de noviembre de 2009

Embeber Código PHP

Ante la facilidad que tiene el lenguaje de programación PHP de "convivir"  o embeber su código con las Etiquetas  HTML, siempre he tenido latente la inquietud sobre cual será la forma correcta de escribir nuestro  código, éste deberá ser limpio y de facil lectura. Teniendo en cuenta las sugerencias realizadas por parte de surforce.com en el taller de desarrollo de Zend Framework y revisando el manual de PHP encontre "Sintaxis alternativas de estructuras de Control". Aquí se expresa la sintaxis de las estructuras de control como if, while, for, foreach y switch.
Esta sintaxis esta más encaminada a OPP, empleada en el patron de diseño MVC dándole a la visualización de resultados (views o vistas) un mejor control.

ejemplos:
if

<?php if($a > $b):?>

 <p>Resultado Verdadero</p>

<?php else:?>

<p>Resultado Falso</p>

<?php endif; ?>



<?php if ($this->usuarioLogueado): ?>

 <div class="menu-opciones">

  <ul>

   <li><a href="<?php echo $this->baseUrl;?>/noticias/noticias/agregar">Agregar noticia</a>

   </li>

  </ul>

 </div>

<?php endif; ?>



foreach

<?php foreach( $this->faqs as $faq ): ?>

  <tr><td><?php echo $faq->id;?></td></tr>

<?php endforeach;?>


while
 
<?php while ($i <=10):?>

 Sentencias...



<?php endwhile;?>


for

<?php for($i = 1; $i <= 10;$i++):?>

    <H1>texto</H1>

<?php endfor; ?>





Usted  como embebe codigo en sus aplicaciones Web?

domingo, 1 de noviembre de 2009

Type casting en PHP

Lenguajes de programación de tipeado fuerte nos indica que para poder utilizar las variables hay que declararlas previamente y determinar el TIPO de dato a contener. En PHP no es necesario hacer estas declaraciones, las variables empiezan por el signo $, deben contener solo caracteres alfanuméricos y empezar por letra, el uso de underscore o raya baja (_) solo esta permitida cuando en la declaración de atributos de una clase son privados o protegidos.

Cuando el nombre de la variable se compone de dos o mas palabras, la variable empieza con minúscula y la segunda con mayúscula (camelCaps).

Ejemplos
 
// variables numericas
$edad=15;
echo $edad;

//variables string o cadena

$nombreUsuario='carlos';
echo $nombreUsuario;

 

Esa flexibilidad de tipo puede ocasionar algunas dificultades o errores inesperados y en PHP 5 se puede utilizar dos maneras de darle tipo a las variables. la primera es mediante la manipulacion de tipos de la forma:
  • $variable =(tipo de dato) dato o variable;
  • Donde 'tipo de dato' puede tomar varias opciones entre otras:
    • (int) para integer o numeros enteros
    • (string) para string o cadenas
    • (double) para datos decimales
    • (object) para objetos
    • (array) para vectores
    • (real) para numeros reales
    • (bool) para booleanos

// variables numericas
$edad=(int)15;
echo $edad;

//variables string o cadena
$nombre=(string) 'Carlos';
echo $nombre;



La otra opción de manipular el tipo de dato es mediante las funciones gettype y settype, estas obtiene el tipo de dato o asignan el tipo de dato respectivamente.

// variables numericas
$edad = 15;

echo gettype($edad);
// sale integer


$edad = '15';
//asignación de cadena 15 porque esta entre comillas

echo gettype($edad);
// sale string
settype($edad, 'integer');
echo gettype($edad); 
// sale integer


El conocimiento y aplicación de estas formas para asignar un tipo de dato específico a las variables, mejora el desarrollo de nuestras aplicaciones.

viernes, 30 de octubre de 2009

Instalando Servidor Apache

Instalación

PHP es un lenguaje de programación del lado del servidor, indicando con esto que nuestro sitio o aplicación Web tipo "php" esta alojada en un servidor remoto (Hosting) y mediante cualquier navegador accedemos a ella, devolviendonos codigo HTML. Para realizar nuestras pruebas necesitamos emular este proceso dentro de una sola maquina, teniendo SERVIDOR y CLIENTE al mismo tiempo. Por tal motivo debemos instalar localmente un servidor Web , el más popular y fuerte es APACHE , además de éste, PHP y el Motor de bases de datos MYSQL estos tres componentes se pueden instalar de forma individual y despues configurar manualmente sus directivas, esta configuración manual puede quitarnos mucho tiempo, sobre todo si estamos empezando en estas faenas.
Hay varias soluciones para Windows y Linux que facilitan en un abrir y cerrar de ojos la instalación automatica de todos los componentes de nuestro servidor Web, algunos son:
  • Appserv : en versión 2.5.10 trae Apache 2.2.8, PHP 5.2.6, MySQL 5.0.51b
  • EasyPHP: Versión 5.3 trae Apache 2.2.13, PHP 5.3.0, MySQL 5.1.37
  • WampServer: Versión 2.0i trae Apache 2.2.11, PHP 5.3.0, MySQL 5.1.36
  • Xampp: Versión 1.7.2 trae  Apache 2.2.12, PHP 5.3.0, MySQL 5.1.37
Para efectos de nuestra practica se debe descargar XAMPP para Windows, despues de tener el instalador en nuestro equipo procedemos a ejecutarlo. a continuación algunas imágenes de este proceso.





En esta etapa se solicita instalar APACHE y MYSQL como un servicio de Windows,indicando que cada que inicie nuestra maquina se ejecutará automaticamente el proceso de carga del servidor apache y el motor de Base de Datos.
Despues de finalizar el proceso de instalación, aparecerá el icono correspondiente. Al ejecutar este enlace aparecerá lo siguiente:



Se puede verificar que Apache y MySQL estan "RUNING" o activos y así poder  realizar las pruebas locales respectivas antes de subirlas al sitio en Internet.

Prueba Local

Abrimos nuestro navegador preferido( firefox ) y digitamos la siguiente URL - http://localhost/ o http://127.0.01/ aparecerá el inicio de XAMPP y elegimos nuestro lenguaje.así llegamos al sitio local de xampp, donde podemos configurar todo el entorno de trabajo.

Recomendaciones

en http://localhost/xampp/ en la parte izquierda superior encontramos unas opciones importantes tales como:
  • Estado, que indica que componente esta activo
  • Chequeo de seguridad:  determina que puntos son inseguros y cuales se deben cambiar, como por ejemplo asignarle clave al cliente gráfico de Mysql, PHPMYADMIN para que cualquier usuario no visualice las base de datos.
  • phpinfo: este es un script que al ejecutarse nos visualiza toda la configuración del entorno de trabajo de PHP, indicando el estado de las directivas de configuración, extensiones, ambiente de Apache,librerias, etc.
Hola MUNDO

Nuestro primer ejemplo de PHP es el mensaje tipico de introducción de cualquier lenguaje de programación  "Hola Mundo".
  • Utilizando cualquier editor como por ejemplo :DEV-PHP
  • Archivo o file -> nuevo
  • Digitar el siguiente Código para nuestro programa hola mundo:
      1  
 <?php
2  
3          
echo 'Hola Mundo'


  • Guardamos el archivo en C:\xampp\htdocs\proyectophp\prueba.php 
  • Lo podemos ver en el navegador en la siguiente URL : http://localhost/proyectophp/prueba.php


Con el servidor Web instalado realizaré algunos ejercicios de fundamentación básica y asi poder abordar temas de programación orientada a objetos.


    jueves, 22 de octubre de 2009

    PHP5 Buena Elección II

    La compañia TIOBE dedicada a evaluar la calidad del software, desde hace algunos años ha realizado informes estadísticos sobre la proyección de los diferentes lenguajes y los paradigmas de programación. El paradigma orientado a objetos ganó respecto a las lenguas de procedimiento y funcionales.El lenguaje PHP en Octubre de 2009 obtuvo un merecido tercer puesto y según se informa, su tendencia ha en aumento.




    En el siguiente post se inicia el proceso de instalación de nuestro servidor local o servidor de pruebas con XAMPP a partir de aquí se comprenderá las ventajas y bondades de este magnifico lenguaje de programación.

    jueves, 8 de octubre de 2009

    Estándares de código PHP

    Mediante estos estándares Zend unifica conceptos sobre las buenas costumbres a la hora de programar con PHP, evitando con esto perdidas de tiempo, mejorando el ciclo de vida de las aplicaciones, nuestro codigo será más limpio y de excelente calidad. Atendiendo a estas bases y mejorando el dominio sobre la programación orientada a objetos, dejaremos de lado el concepto de ser solo manejadores de scripts a ser valorados como verdaderos programadores.

    Esta codificación expresa entre algunas las siguientes:
    • Para archivos que contengan únicamente código PHP, la etiqueta de cierre ("?>") no está permitida. No es requerida por PHP, y omitirla evita la inyección de espacios en blanco en la respuesta.
    • Variables

      Los nombres de variables pueden contener caracteres alfanuméricos. Las barras bajas (_) no están permitidas. Los números están permitidos en los nombres de variable pero no se aconseja en la mayoría de los casos.

      Para las variables de instancia que son declaradas con el modificador "private" o "protected", el primer carácter de la variable debe ser una única barra baja (_). Este es el único caso admisible de una barra baja en el nombre de una variable. Las variables declaradas como "public" no pueden empezar nunca por barra baja.

      Al igual que los nombres de funciones, los nombres de variables deben empezar siempre con una letra en minúscula y seguir la convención "camelCaps".

      Por norma general, se recomienda la elocuencia. Las variables deberían ser siempre tan elocuentes como prácticas para describir los datos que el desarrollador pretende almacenar en ellas. Variables escuetas como "$i" y "$n" están desaconsejadas, salvo para el contexto de los bucles más pequeños. Si un bucle contiene más de 20 líneas de código, las variables de índice deberían tener nombres más descriptivos.

    • Las etiquetas cortas (short tags) no se permiten nunca, este es el caso de algunas lineas donde supuestamente se ahorra código: se debería escribir , además el uso de etiquetas cortas puede presentar conflictos con XML.
    • Cadenas Literales de Caracteres

      Cuando una cadena es literal (no contiene sustitución de variables), el apóstrofo o "comilla" debería ser usado siempre para delimitar la cadena:

      $a = 'Example String';
    • Cadenas Literales de Caracteres que Contengan Apóstrofos

      Cuando una cadena literal de caracteres contega apóstrofos, es permitido delimitar la cadena de caracteres con "comillas dobles". Esto es especialmente útil para sentencias SQL:

      $sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";

      En esta sintáxis es preferible escapar apóstrofes, ya que es mucho más fácil de leer.

    La lista no es larga pero si lo suficientemente clara, y siendo consecuentes TENEMOS que dejar guiarnos por los lideres del proyecto, así como Microsoft tiene el poder sobre sus herramientas de desarrollo y da unos patrones para darle solución a determinados proyectos, Zend hace lo mismo con PHP, encausemos nuestro trabajo por el lado de bien.

    miércoles, 7 de octubre de 2009

    PHP5 Buena Elección!!



    Desde los inicios de este lenguaje de programación las cosas han cambiado y mejorado sustancialmente en las versiónes 5.x (actualmente la versión liberada es la 5.3.0), el número de ventajas es cada vez mayor entre algunas: es y seguirá Open source al menos eso espero, el soporte para Programación Orientada a Objetos es superior a las anteriores versiones, La velocidad de ejecución es mayor, puede manejar SQLite, mediante una nueva extensión puede manejar diversas Bases de Datos (PHP Data Objects), soporte para namespaces, creación de funciones anónimas, operador goto creación dinamica de métodos y funciones (Overloading), La libreria SPL(Standard PHP Library) en esta nueva versión no puede ser desactivada. Esto por el lado de su desarrollo y evolución, otro punto de vista que nos permitirá tener una buena elección, son las estadísticas, finalmente nos brindan una valiosa información de algún tema en particular. A continuación podemos ver las diferentes gráfcas sobre utilización de PHP, tendencias de los lenguajes de programación, utilización de servidores, etc. ( las gráficas estadísticas son tomadas de http://www.nexen.net http://news.netcraft.com/

    Las gráficas corresponden a la utilización en Internet de PHP y a servidores de alto nivel














    La gráfica muestra la cantidad de proyectos subidos a SourceForge según el lenguaje de programación utilizado.












    Las siguientes Imágenes son tomadas de los más grandes portales de trabajo o desarrollo freelance, muestran como PHP es líder indiscutible en la solicitud de proyectos.















    Además grandes aplicaciones de alto prestigio estan desarrolladas en PHP5 tales como facebook, OsCommerce, WordPress, sistemas operativos online (EyeOS) y Moodle entre otras, en honor a la verdad la lista es demasiado extensa. Creo que desde este punto de vista utilizar PHP5 es una buena elección!!

    lunes, 5 de octubre de 2009

    Herramientas de trabajo

    En internet contamos con una gran cantidad de aplicaciones que nos facilitan el aprendizaje de nuevos conceptos, mejoran la calidad de nuestro desarrollo y en algunos casos el concepto de ser gratis nos llama mucho la atención. La mayoria de ejemplos realizados en los temas propuestos para este Blog utilizan las herramientas descritas a continuación.

    UML :
    • ArgoUML es una aplicación de diagramado de UML escrita en Java y publicada bajo la Licencia BSD open source. Dado que es una aplicación Java, está disponible en cualquier plataforma soportada por Java. Descargar
    • Dia es una aplicación informática de propósito general para la creación de diagramas, desarrollada como parte del proyecto GNOME. Está concebido de forma modular, con diferentes paquetes de formas para diferentes necesidades. Dia está diseñado como un sustituto de la aplicación comercial Visio de Microsoft. Se puede utilizar para dibujar diferentes tipos de diagramas. Actualmente se incluyen diagramas entidad-relación, diagramas UML, diagramas de flujo, diagramas de redes, diagramas de circuitos eléctricos, etc. Nuevas formas pueden ser fácilmente agregadas, dibujándolas con un subconjunto de SVG e incluyéndolas en un archivo XML. Descargar
    • StarUML es Open Source y se constituye en una de las mejores herramientas de modelado UML, rápidas, flexible y escalable. Descargar
    IDE (Entorno de desarrollo integrado, en inglés, Integrated Development Environment )
    • NetBeans IDE es un entorno de desarrollo - una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Está escrito en Java - pero puede servir para cualquier otro lenguaje de programación. Existe además un número importante de módulos para extender el NetBeans IDE. NetBeans IDE es un producto libre y gratuito sin restricciones de uso.Descargar
    • Eclipse for PHP Developers otro magnifico IDE con variedad de herramientas de apoyo al desarrollador de aplicaciones Web. Descargar
    • Dev-PHP es una excelente alternativa para trabajar PHP, trae ayudas indispensables que facilitan al programador salir de dificultades. Descargar
    Servidor Web
    • Nuestro enfoque esta sobre el servidor Web Apache y para ser instalado en nuestro equipo de prueba necesitamos igualmente PHP, MYSQL, estos se pueden instalar de forma individual pero teniendo a la mano una aplicación que lo hace en menos de 5 minutos y que configura todo por nosotros, pues no hay razón de perder tiempo. La aplicación se llama XAMPP es totalmente gratuita, multiplataforma. Descargar
    Framework
    • Un framework, en el desarrollo de software, es una estructura de soporte definida, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto.
    Clientes MySQL
    • Para administrar nuestra base de datos en forma gráfica existen diversas aplicaciones que con solo un click hacemos maravillas. hay que tener en cuenta que al instalar nuestro servidor Web con XAMPP se adiciona un cliente "phpMyAdmin" que es gráfico y muy bueno.

    Documentación Oficial

    • Manual PHP. La solución a muchos de los problemas o contratiempos en el desarrollo de nuestras aplicaciones la encontramos siempre en el manual oficial. Descargar

    Estas herramientas constituyen nuestro apoyo teorico, si queda pendiente alguna la comentaré en breve.

    domingo, 4 de octubre de 2009

    Bienvenidos Aprendiendo PHP5

    Bienvenidos, desde hace algún tiempo la idea de tener en Internet, comentarios, aportes u opiniones estaba latente, hoy emprendo esta tarea con la firme convicción de compartir conceptos y aprender de los visitantes de este Blog. El tema del Blog "APRENDIENDO PHP5" pretende trasmitir de forma simple y paso a paso conceptos sobre el lenguaje programación PHP5, UML, programación orientada a objetos -OPP, patrones de diseño, manejo de IDE´s , Zend Framework y herramientas que facilitarán el trabajo en el desarrollo de sitios y aplicaciones Web.

    Una de las personas que me ayudo a tomar la decisión de dedicarle tiempo a este Blog es Enrique place, quien con sus avanzados conocimientos, sus respuestas concretas y su puntual lexico, facilitaron un reordenamiento de mis ideas acerca de lo que debería saber un programador. Más que elogios hacia el Sr Place son agradecimientos.

    A Jesús Conde quien de forma altruista ha promulgado que el conocimiento es libre, facilitando sus cursos por uno de los mejores medios de comunicación, los Videotutoriales.