Archive for the ‘Coding’ Category

07
Mar

Blog redesign in progress

As many of you may have noticed, today, a new look and feel is present at the blog, not all the changes were merely visual, as the process is undergoing i will explain some of the changes.

02
Feb

PHPBenelux 2010 – My 5 cents

Now, that i am back home, i can write down my thoughts on PHP Benelux 2010, realized in Antwerp, Belgium.

I just signed out for the conference, without really knowing anyone, except from the blogs and previous presentations, i landed in Belgiun without any real expectations about what i was going to bring back to Portugal form the conference.

The event organization

The venue was nice enough for the event presentation, the reception of the event was just great, no need to be a long time waiting for the badge and no hiccups when asking for it. The conference rooms where nice, talk 2 room chairs where somehow not so comfortable, but in general everyone was happy from what i could see. The schedule was nicely controlled by the organization and no big delays occurred, it’s the first time that i saw no real delays happen on a conference of this size, cheers for you guys.

The speakers

The speakers were just great, a lot of PHP known names in the list, with a set of great talks to deliver. Just loved all, but Lorna Jane and Cal Evans where just great, i had to deliver this opinion.

The talks

Sometimes had the hard job of choosing what talk to see, when some of them just overlap at same time, but i’m convicted that i made a great choice, so what did i saw ?

1. Opening Keynote: – The PHP Universe by Derick Rethans
2. Dependency Injection in PHP 5.2 and 5.3 by Fabien Potencier
3. Get the most out of Solr search with PHP by Paul Borgermans
4. PHP applications/environments monitoring: APM & Pinba by Patrick Allaert/Davide Mendolia
5. PHPillow & CouchDB & PHP by Kore Nordmann
6. Passing the Joel Test in the PHP World by Lorna Mitchell
7. Generating dynamic PDFs using Zend Framework and JavaBridge by Eric Ritchie
8. Closing Keynote: Open Teams by Cal Evans

I just left my comments on Joind.in, if you’re feeling curious just go on and check the audience comments on each talks. http://joind.in/event/view/110

Some of the presentations are now uploaded into Slideshare, sho go on and check them out: http://www.slideshare.net/tag/phpbnl10 and some photos on Flickr: http://www.flickr.com/photos/tags/phpbnl10/.

In conclusion, the conference was just great, i am extremely happy for making around 1000 miles to go there and meet the people and watch the conference live. It as great to meet Jeremy and Priscilla Coates and quickly meet Lorna Jane.

Congratulations to all the people that put effort on making the conference memorable and see you all soon.

03
Jan

Zend Framework: How-to interact with Google Calendar (Part 1/2)

Zend Framework has a great interface to access Google Data, this is one of the most easiest ways to implement Google Data API using PHP, in this short how-to i will explain how to authenticate, read and write information from/into your Google Calendar, Zend Framework Documentation has great examples on this. On this first part of this how-to i will explain how-to:

  1. Authenticate on Google Calendar
  2. List all your calendars
  3. Create a new Calendar

I will assume that you are already familiarized with the Zend Framework, and the project is already set up, meaning, include path’s and all extra work.

First let’s include the needed packages into our code:

 
<?php
require_once 'Zend/Gdata.php';
require_once 'Zend/Loader.php';
 
//Let's enable autoload, ZF handles this nicely
Zend_Loader::registerAutoload();
?>

In order to communicate with your Google Calendar, you need first to Authenticate, and there are 3 ways you can use to authenticate: ClientAuth, AuthSub and MagicCookie, you can read the details of each on the Zend Framework Documentation page, on my quick how-to i will use the ClientAuth method.

Authenticating on Google Calendar

 
/**
* Please define your Email and Password for Google Accounts access
*/
define('YOUR_EMAIL_FOR_GOOGLE_ACCOUNTS','');
define('YOUR_PASS_FOR_GOOGLE_ACCOUNTS','');
 
require_once 'Zend/Gdata.php';
require_once 'Zend/Loader.php';
 
//Let's enable autoload, ZF handles this nicely
Zend_Loader::registerAutoload();
$myEmail = YOUR_EMAIL_FOR_GOOGLE_ACCOUNTS;
$myPass  = YOUR_PASS_FOR_GOOGLE_ACCOUNTS;
 
// Parameters for ClientAuth authentication
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($myEmail, $myPass, $service);

Now that we have the authenticated client instance, we are able to interact with Google Calendar. The first action that i do, is to verify if the Calendar i want to write on, exists, if not, i create a new calendar.

Listing calendars and creating a new Calendar

/**
* Lets create the Service instance, to interact with Google Data Api
*/
$service = new Zend_Gdata_Calendar($client);
 
$calendarName = 'My Calendar ZF Example';
$useCalendarFeed = FALSE;
 
try {
// Let's get the calendar list from Google calendar API
$listFeed= $service-&gt;getCalendarListFeed();
} catch (Zend_Gdata_App_Exception $e) {
echo "Error: " . $e-&gt;getMessage();
}
 
/**
* Need to run through all the array to search for our calendar name
* Calendar Listing Feed is available on $listFeed variable
*/
 
foreach ($listFeed as $calendar) {
if($calendar-&gt;title == $calendarName)
$useCalendarFeed = $calendar-&gt;content-&gt;src;
}
 
/**
* If we have not found the calendar we want to use,
* we need to create a new one
*/
if(FALSE === $useCalendarFeed)
{
$appCal = $service-&gt;newListEntry();
$appCal-&gt;title = $service-&gt;newTitle($calendarName);
$own_cal = "http://www.google.com/calendar/feeds/default/owncalendars/full";
$service-&gt;insertEvent($appCal, $own_cal);
 
/**
* Need to grab the Google Calendar feed again, with the newly inserted calendar
* We'll need the refreshed feed in order to get the newly added calendar ID in order
* to add the event into the created calendar
*/
try {
$listFeed= $service-&gt;getCalendarListFeed();
} catch (Zend_Gdata_App_Exception $e) {
echo "Error: " . $e-&gt;getMessage();
}
 
}

If you go to your Google Calendar account a new calendar named “My Calendar ZF Example” was created.

You can download all the code from my Google Code Repository – Zend Framework Google Calendar Example 1/2.

Hope this helped, on the next how-to i will explain how to create events in your newly created calendar.