dichiarazione della classe per un oggetto in PHP

Per convenzione quando un oggetto non e’ istanziato in modo esplicito in questo modo:

$oggetto = new Classe();

è possibile dichiarare il tipo di un oggetto con:

/* @var $oggetto Classe */

Così facendo oltre ad avere del codice autodocumentato si mette nelle condizioni il vostro editor (Eclipse o Zend studio … ) di capire il tipo del dato e quindi attivare le varie funzionalità come autocompletamento, accesso ai metodi eccetera.
Questa convenzione è valida in tutti i file php, quindi per esempio anche nei partial e/o template di symfony dove si perde il concetto di tipizzazione degli oggetti.

Annunci

Abilitare la visualizzazione degli errori in PHP

Mi segno qui, come appunto, due istruzioni semplici che attivano la notifica dettagliata degli errori in PHP:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1); 

Linux Apache PHP MySql preparare l’ambiente di sviluppo

Mi sono trovato piu’ volte a dover configurare un ambiente di sviluppo LAMP su un sistema Ubuntu GNU/Linux fresco di installazione.

Ho creato uno script semplicissimo che installa tutti i pacchetti necessari per avere un ambiente con il database MySql, il servizio HTTP Apache e i moduli PHP necessari.

#!/bin/bash
# installazione database MySql (server e client)
sudo aptitude install mysql-server mysql-client
# installazione server Apache
sudo aptitude install apache2
# installazione PHP (con relativa integrazione in Apache)
sudo aptitude install php5 libapache2-mod-php5
sudo /etc/init.d/apache2 restart
# installazione dei moduli PHP più utilizzati
sudo aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json
sudo /etc/init.d/apache2 restart
# installazione di phpmyadmin per la gestione del database MySql
sudo aptitude install phpmyadmin
Schermata-install_lamp.sh (~) - GVIM

Schermata-install_lamp.sh (~) - GVIM

Salvare questi comandi in un file install_lamp.sh e renderlo eseguibile:

chmod u+x install_lamp.sh

Per avviare l’installazione, eseguire:

./install_lamp.sh

Youtube e la geolocalizzazione dei video

Google Data API

Youtube Google Data API

Youtube Google Data API

Google fornisce all’utente Web una enorme quantità di servizi quali gestione dei documenti, calendario, mappe. Questi servizi sono fruibili dall’utente finale tramite il proprio Browser Web. Per quanto riguarda gli sviluppatori, Google espone questi servizi in diversi formati:

  • Atom: utilizza il formato Atom per la rappresentazione dei dati e il protocollo HTTP per veicolare l’informazione;
  • JSON: utilizza il formato JSON per la rappresentazione dei dati e il protocollo HTTP per veicolare l’informazione.

In questo modo uno sviluppatore è nelle condizioni di integrare le informazioni gestite dai vari servizi Google nelle proprie applicazioni (Web e/o Desktop).
Le regole da seguire per la gestione di questa comunicazione (interrogazione dei dati, modifica dei dati eccetera) sono definite da un protocollo (fornito da Google), il Google Data Protocol.
Nel dettaglio questo protocollo indica al programmatore come richiamare i servizi (HTTP) e come gestire le risposte dal servizio (XML, JSON).

Quali A.P.I. sono disponibili?

Google mette a disposizione la API Directory nella quale sono elencati tutti i servizi disponibili. Per ciascuna API è presente un link alla guida, e link a Librerie Client.
Le librerie client sono disponibili per ciascuna API in differenti linguaggi di programmazione. Le librerie client forniscono un utile livello di astrazione che facilita la vita al programmatore che non deve occuparsi di gestire le richieste HTTP e le risposte XML/JSON.

YouTube Data API

Le YouTube Data API permettono di integrare le funzionalità offerte da Youtube nel proprio sito Web.
Per i programmatori PHP esiste una ottima guida che illustra come usufruire di ogni singola funzionalità tramite il proprio linguaggio di sviluppo.

PHP e YouTube in Azione

Una ottima libreria PHP client per YouTube è Zend Gdata.Dalla pagina di Zend Gdata è possibile scaricare l’ultima versione della libreria e accedere alla documentazione specifica.

Download Zend Gdata

Scaricare l’ultima versione dal sito:
http://framework.zend.com/download/gdata/
Estrarre l’archivio, ottenendo così 4 directory: demo, documentation, library, tests.
Copiare la directory library nella directory di lavoro. La directory di lavoro conterrà i sorgenti creati e dovrà essere “visibile” al Web Server.
Creare un file (index.php) nella directory di lavoro:

<?php
$clientLibraryPath = 'library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
$query = $yt->newVideoQuery();
$query->setLocation("45.8529825,9.3900705");
$query->setLocationRadius("5km");
echo $query->queryUrl . "\n";
$videoFeed = $yt->getVideoFeed($query);
$i=0;
foreach ($videoFeed as $videoEntry) {
echo $i++;
echo "---------VIDEO----------<br>";
echo "Title: " . $videoEntry->getVideoTitle() . "<br>";
echo "<img src=\"".$videoEntry->mediaGroup->thumbnail[0]->url."\"><br>";
echo "\nDescription:\n";
echo $videoEntry->getVideoDescription();
echo "<br><hr>";
}

Nel dettaglio, occorre inizializzare l’ambiente in modo che la libreria Zend Gdata sia visibile allo script:

$clientLibraryPath = 'library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');

Per poter definire i parametri di ricerca utilizzare l’oggetto VideoQuery:

$query = $yt->newVideoQuery();
$query->setLocation("45.8529825,9.3900705");
$query->setLocationRadius("5km");

In questo specifico caso, il metodo setLocation serve per definire la latitudine e longitudine dei video geolocalizzati che si vogliono ricercare e il metodo setLocationradius serve per definire l’area (5 kilometri) di ricerca.
Per ottenere l’elenco dei video è sufficiente utilizzare il metodo getVideoFeed:

$videoFeed = $yt->getVideoFeed($query);

Installare memcache con MAMP (MacOSX)

Ecco un link che spiega come abilitare memcache su sistemi MacOSX con MAMP
http://stackoverflow.com/questions/1879480/mamp-how-to-install-memcached

%d blogger hanno fatto clic su Mi Piace per questo: