Monthly Archives: August 2011

Using dompdf with UTF-8 encoding

I have used dompdf for the first time to generate PDF files from html content, and it seems to be working pretty well. One thing I noticed, when using UTF-8 encoding, you should add following in the head section of your html content :

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

This way, the characters will be displayed correctly in the rendered pdf.

Xapian queries – a common mistake…

I was just trying to figure out why a Xapian query did not work as expected, when it hit me : i was using the word ‘and’ to combine search terms, while I should be using the capitalized word ‘AND’ instead… Stupid mistake that cost me an hour to figure out. Hence this reminder :)

Using Zend with Symfony2

I recently needed to use the Zend GData component in my Symfony2 project. It is very easy to setup, but there is one mistake that I suspect some other people might make as well.

First, add the Zend library to your vendor folder (e.g. vendor/Zend/library/Zend). As Zend does not use namespaces, you need to register the ‘Zend’ prefix instead. This can be done in the autoload.php file located in your app folder. Apparently Zend has some problems this way with ‘require_once’ statements, hence the modification of the include path (last line) :

// autoload.php

use Symfony\Component\ClassLoader\UniversalClassLoader;

// ... existing code

$loader->registerPrefixes(array(
    'Twig_Extensions_' => __DIR__.'/../vendor/twig-extensions/lib',
    'Twig_'            => __DIR__.'/../vendor/twig/lib',
    'Swift_'           => __DIR__.'/../vendor/swiftmailer/lib/classes',
    'Zend_'           => __DIR__.'/../vendor/Zend/library',
));

$loader->register();
$loader->registerPrefixFallback(array(
    __DIR__.'/../vendor/symfony/src/Symfony/Component/Locale/Resources/stubs',
));
set_include_path(__DIR__.'/../vendor/Zend/library'.PATH_SEPARATOR.get_include_path());

Now you are ready to use the Zend components. One mistake I made, I used the classes without a leading backslash, which does not work because the classes are in de default namespace. So, instead of using e.g.

$gdataCal = new Zend_Gdata_Calendar($client); // class not found error will be thrown

you need to add a backslash as such :

$gdataCal = new \Zend_Gdata_Calendar($client); // class is located in default namespace