Musings of ErisDS
beta
ErisDS

Archive > Tag > Symfony

Zend Framework
I am on a mission to get to grips with using the Zend Framework for building web applications. At MOO, the Zend Framework is used in it’s more toolkit-like component library capacity and I’m also pretty familiar with its structure from previous work with Magento (although that always seemed to over-complicate it). Using it as a full stack framework however, is a different challenge all together.

This is a super short snippet that I ALWAYS forget how to do! Often I want to build more complex where clauses with Propel Criteria which use SQL functions such as UCASE, LCASE, LEN and the date functions DAY, MONTH and YEAR. This is possible using Propel & Criteria, but how to do it is not immediately obvious.

The snippet below shows how to select objects from the database which were created in a specific month and year. Using Criteria::CUSTOM, it’s possible to specify a column and a comparison to do with that column. This is quite useful for doing things like building archive lists.

1
2
$c->add(MyObjPeer::CREATED_AT, 'MONTH('.MyObjPeer::CREATED_AT.')='. $month, Criteria::CUSTOM);
$c->addAnd(MyObjPeer::CREATED_AT, 'YEAR('.MyObjPeer::CREATED_AT.')='. $year, Criteria::CUSTOM);

Have you ever tried to parse, process or preg_replace some HTML? Ever tried to do it when the HTML is UTF-8 encoded? Getting rid of white space can be tricky, here’s a few tricks I’ve learned.

Perusing my Google Analytics data shows up some interesting results. For starters the top search query which sends people to my blog is “symfony accessing object in a form”. This has been consistent for several months, but there is no article on my blog which answers that question. I imagine this must be very frustrating for people so it’s about time I added the answer here as a snippet.

When working with large and complex datasets in Symfony, there comes a point where the ORM layer (Propel or Doctrine) causes more problems than it solves. Sometimes it’s necessary to debug large SQL queries built using the ORM layer, and at other times it’s appropriate to bypass the ORM layer entirely.  The following snippets come from projects using Propel, I realise a lot of folks will have moved on to Doctrine but I hope there may be one or two useful things for that here too.

It’s now been over a month since my last post to this blog. I had promised not to ever let it get longer than 10 days but this past month has been an exceptional circumstance. I’ve had a few enquiries regarding part 3 of my YUI articles, so this post is just a quick update to say it’s still on it’s way!