Apr 05

PHP4 vs PHP5

Reading time: 2 – 3 minutes

Tot llegint el PHP|Architect’s Guide to PHP Design Patterns (isbn: 0973589825) vaig trobar fa un parell de dies un petit llistat de quines eres les diferencies fonamentals entre PHP4 i PHP5, a part del tòpic que amb el motor de Zend 2.1 ara tenim suport de OOP i de que tothom em digui que el model d’objectes que usa PHP5 encara és molt dolent doncs bé amb això podrem saber fins a quin punt ho és.

  • Object handles
  • Better constructors (uniform name, changing $this not allowed)
  • Destructors now exist
  • Visibility (public, protected, private for methods and attributes)
  • Exceptions (an alternative to triggering errors using the new try{} catch{} syntax)
  • Classconstants (defines using the class for a name space)
  • Reflection (dynamic examination of classes, methods and arguments)
  • Type hinting (specifying expected classes or interfaces for method arguments)

També hi podem trobar altres novetats una mica menys conegudes:

  • New magic methods (__get() and __set() allow you to control attribute access; __call() lets you dynamically intercept all method calls to the object; __sleep() and __wakeup() let you override serialization behavior; and __toString() lets you control how an object represents itself when cast as a string)
  • Autoloading (allows the end user to try to automatically load the class the first time a reference to it is made)
  • Final (do not allow a method or a class to be overridden by subclasses)

A més hi ha coses com la part d’object handles que donen molt de si:

  • Create an object by reference, as in $obj =& new Class;
  • Pass an object by reference, like function funct(&$obj_param) {}
  • Catch an object by reference function &some_funct() {} $returned_obj =&
    some_funct()

En escència el que més m’ha agradat ho teniu resumit aquí, ja sé que esta en anglès però em feia una mandra brutal traduir-ho. Si m’animo un dia d’aquests donaré més detalls de com aprofitar aquestes avantatges per implementar design patterns amb PHP5. Realment ja comences a sentir-te com un programador de veritat quan veus que el PHP5 no té cap problema en suportar estructures que fins ara li quedaben tan lluny.

Apr 04

UML – Procés de desenvolupmanet OO de Craig Larman

Reading time: 2 – 2 minutes

uml.gif

Dels molts documents que he estat llegint les últimes setmanes especialment n’hi ha un de només 38 pàgines que l’he trobat ideal per fer-ne una guia de passos de com modelar un sistema OO amb UML. Aquest document bàsicament explica un mètodes anomenat de Craig Larman (wikipedia).

Doncs basant-me en aquest document amb el “tallar” i “engaxar” contra el meu wiki m’he fet un petit document resum ideal per usar com a eina de consulta durant el desenvolupament d’un projecte. És curiós perquè tret d’algunes frases per unir conceptes la resta l’he extret directament del document inicial i m’ha quedat força bé, almenys això em sembla a mi. Per altre banda, li vull agraïr a l’autor del document original Juan de Dios Bátíz Paredes la seva feina ja que m’ha estat molt útil, si voleu ampliar conceptes o veure exemples del que explica el meu resum obviament els trobareu al document d’aquest senyor.

Nov 16

Groovy: simplificant Java

Reading time: 1 – 2 minutes

groovy.png

Groovy és un llenguatge que usa les APIs de Java però que simplifica la programació al màxim. Sembla que no esta malament algún dia li podria donar un cop d’ull. També he trobat un article d’IBM que en fa una petita introducció, sembla molt senzill realment.

A O’Reilly Network es va publicar no fa massa un codi fet en Groovy que servia per crear un lector de feeds (tipus liferea) que treballava contra les APIs de bloglines. Això et pot interessar pof. L’article: A Complete Bloglines API Application ( versió imprimible )

Si algú l’ha provat o l’arriva a provar que avisi que tinc curiositat de saber fins on arriba la implementació de la API o del paquet de classes de java millor dit.

Nov 15

Treballant amb cookies de sessió i PHP

Reading time: 1 – 2 minutes

A vegades necessitem parlar amb una web des de PHP i aquesta usa cookies de sessió sense les quals no podem parlar amb la web. Per agafar la cookie d’inici de sessió podem usar aquesta funció:

function getgaleta($server, $port)
{
   $cont = "";
   $ip = gethostbyname($server);
   $fp = fsockopen($ip, $port);
   if (!$fp)
   {
       return "Unknown";
   }
   else
   {
       $com = "GET http://www.barcelonastyle.com/gc/web/webesp/framesetxsl.asp HTTP/1.0rnrn";
       fputs($fp, $com);
       while (!feof($fp))
       {
           $cont .= fread($fp, 500);
       }
       fclose($fp);
       return substr($cont, strpos($cont, "Set-Cookie: ")+12, 45);
   }
}

Si ara que ja tenim la cookie el que volem fer és usar-la per fer peticions contra el site, podem usar aquesta altre funció:

function getcontent($server, $port, $file,$galeta)
{
   $cont = "";
   $ip = gethostbyname($server);
   $fp = fsockopen($ip, $port);
   if (!$fp)
   {
       return "Unknown";
   }
   else
   {
       $com = "GET http://".$server.$file." HTTP/1.0rnCookie:".$galeta."rnrn";
       fputs($fp, $com);
       while (!feof($fp))
       {
           $cont .= fread($fp, 500);
       }
       fclose($fp);
       return $cont;
   }
}

Tonto però útil, tinc moltíssimes més funcions però tampoc és qüestió de marejar, només que les he trobat útils aquestes junt amb les dues anteriors.

Nov 23

OriolNews Portal: Busquedes

Reading time: 1 – 2 minutes

Ja he activat el sistema de busquedes del portal, és una mica cutre, ja q només fa busquedes als titols, però almenys permet accedir ràpidament a articles antics.

Doncs res avui quan he arribat a casa m’he fotut davant la pantalla ara fa tot just 1h30m i he estudiat com ho havia fet el tio del MyNews per fer les busquedes com sempre no m’ha agradat gens el q ha fet, així doncs m’he posat a modificar codi com un boig, fins al punt q no deu quedar ni una línia PHP seva, de HTML n’he conservat unes quantes però ben poques.
Com a cosa important a destacar en aquesta nova feature encara en fase beta és q els resultats de la búsqueda es mostren usant templates, les plantilles de templates estan a:
http://oriol.homeip.net/tpl
Encara s’ha de millorar molt el tema de presentació i exaustivitat en la busqueda però per haver-ho fet en menys de 2h no esta malament i ara me’n vaig a sopar q avui tic a casona i això és tot un luxe.
Així doncs, dono per publicada la versió 0.0.1 en fase súper beta del buscador del portal :)))