How to filter user submitted data easily in PHP?

Written by Chris on August 18, 2008 – 7:29 am -

How to filter user submitted data easily in PHP?

Posted using ShareThis

Firstly, as you can see this is my first post made as a direct result of using the ShareThis bookmarklet, which is pretty neat as it actually worked :)

Secondly and more importantly, I wanted to flag this up on my blog as it's something that quite often gets missed in PHP which is actually a very powerful tool.

As the author of the post above mentions, array_map() can be a useful function when sanitizing user data, but it has so many more uses too when dealing with the transformation of a data-set.

Basically a call such as $new_data = array_map('process_data', $old_data); will allow you to transform each element in the $old_data array to a new element in the $new_data array via the function called process_data.

What's more you can manipulate multiple data-sets in this way too by specifying multiple arrays, so long as process_data() can take in the arguments.

For example lets say we have process_data($item1, $item2, $item3) which manipulates $item1, $item2, $item3 to produce a single result.

If we need to perform this calculation on a bulk set of data we can do

$new_data = array_map('process_data', $array_of_item1, $array_of_item2, $array_of_item3);

Easy huh?

I still see people performing these transformations, calculations, whatever, using for, foreach and while loops which can be prone to failure under certain conditions, and are probably less efficient code than simply making this call.

So why don't more people use it?  I don't know, but maybe this post will help raise awareness!



Popularity: 70% [?]

Sphere: Related Content


Tags: , , , , , ,
Posted in PHP, Web Development | No Comments »

Funky ORM with PHPDoctrine

Written by Chris on February 26, 2008 – 2:24 am -

I work on all sorts of little personal projects in my spare time, most of which don't ever make it to a release (mainly due to time issues), and recently I've been finding more and more instances where I could do with some kind of object relational mapper (ORM) library to assist me.

In a very small nutshell, an ORM system will allow you to take the relevant parts of a database schema and functionality and map it to classes that you have written to effectively lower the barrier between the database and whatever it is you're writing.

This makes the interface to the database more fluid, and allows for automated building of SQL and other higher order operations to be performed easily, without having to worry too much about the actual mechanics of what is going on between your application and the database.

At work we use our own in house ORM system to achieve what we need to do in this regard, but I can't reasonably expect to use this for everything I do from now on as it is the property of the company I work for. Not only that, but just staying with what you know doesn't really help you improve on what you have, or gain new perspectives on what you're working with.

So, I thought I'd go off to Google, do a bit of searching, and find some ORM examples that I can use to knock together my own ORM library to do the things I need, but then I came across PHP Doctrine...

PHP Doctrine is fairly new and is described by its developers as follows:

"Doctrine is an ORM (object relational mapper) for PHP 5.2.x+ that sits on top of a powerful DBAL (database abstraction layer). One of its key features is the ability to optionally write database queries in an OO (object oriented) SQL-dialect called DQL inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains a maximum of flexibility without requiring needless code duplication."

This sounded interesting so I decided to have a quick(ish) look through the user manual and got hooked! You can do a tonne of stuff with it, and in some ways its like having a (good) version of a tool like PHPMyAdmin that you can use on a system level - pretty much anything you could want to do in a database they have a map for which is great.

I'm not saying I'd use all the functionality they provide particularly, but a large chunk of it solves all my problems, saves me having to write my own, and being based on PHP 5.2+ I know it's modern, up-to-date and really taking full advantage of what the newer PHP versions have to offer.

If you use or are thinking of using a PHP based ORM solution in your projects, I'd seriously suggest having a look at the manual for PHPDoctrine before you write your own. Like anything, I have to admit that it does also have a couple of niggly bits of functionality that I  don't like, but really and truly, the pro's of it seriously out-weigh the cons.

You can read more about PHP Doctrine on its website here: PHPDoctrine



Popularity: 19% [?]

Sphere: Related Content


Tags: , , , , , , , , ,
Posted in MySQL, PHP | No Comments »
RSS