Archive

You are currently browsing the archives for the PHP category.

May

6

My First Drupal Module

By mike@mike-miles.com

Recently while working on a drupal website for a client, I needed to build in some custom functionality.  For drupal this is’nt an issue, basically anything you need to do has been done before and you can find a module in the module directory.

But after searching I was unable to find a module that did what I wanted, so I had to develope one (Which for a nerd like me was really fun).  It took me a day or two to build, and refine but I built a module that I was happy with.

The great thing about Drupal is that it’s all open source, and anything built for drupal is covered under the GNU license. Drupal thrives on user submitted content and projects, so I decided I would submit my module to give back to the community.  Submitting a module is a bit of a process, you need to submit a proposal, get approved, create an account and create a project page.  The Drupal moderators must of liked my module thou, because it was approved!

So I now have my first (hopefully of many) official Drupal module available for download on the Drupal website.

Now for the good part, here is all the info on the module:

Callouts

Callouts creates a way to display multiple blocks that are related by taxonomy terms. After you place the module into a region on your site, when a user goes to a page any callout blocks (callout is a new content type) with the same taxonomy terms as that page will be displayed in the region.

This Module is great if your looking to show related products in an e-commerence environment, or announcements depending on what page of the site your users are on.

You can downlaod the module for your drupal installation at http://drupal.org/project/callouts

Mar

10

Working hard

By mike@mike-miles.com

Sorry for the lack of updates, I’ve been quite busy at my job (doing some major web development stuff). I’m going to try to post later this week about a PHP calendar/date class I’ve been building in my freetime (initial tests are showing that for some instances it’ll be up to 4x faster then the ‘date()’ function.) so hopfully you’ll see that later in the week

Feb

23

Itunes like progress/capcity bar

By mike@mike-miles.com

Back in December I was working on a project that needed to show progress bars.  They progress bars had to show the progress of multiple items, and it was explained to me that they should resemble the percentage bars in iTunes that show how full your ipod / iphone is, like so;

Not a problem I thought to myself, all I needed was a few images and the ever useful PHP GD library .  If you’ve never used the PHP GD library before, a brief overview:  It’s a graphics library that allows you to create dynamic graphics.  (Told you it was brief).

Of course the great thing about PHP is that it is open source, so anything you need todo has already practaclly been done. After googling I found this percentage bar code created by netlobo.com, as well as this progress/percentage bar WebAppers (theirs was in javascript but it gave me a starting point). Both of these were close to what I wanted to do, I just needed to tweak and combine them.

I should note, that since I did use code from both those websites (which are covered under the Creative Commons license and GNU General Public License) this code covers the same licensing.

The Process

My thought process for creating this was pretty straight forward from the get-go.

  1. Get percents of the items that will be on the bar
  2. Create a “bucket” image
  3. for each percent, fill part of the bucket with a color
  4. Output the whole bar.

And that’s pretty much the route I followed.  It was pretty simple actually.

Sorry to say, this code has been removed for legal reasons

but, please check out the sources I used when developing my code (they are mentioned above)

Feb

12

When to be OOP

By mike@mike-miles.com

In case you don’t know (or didnt realize) web languages (like php, javascript, ect…) have evolved a long way from their first verisons (duh, mike).  With that eveloution they have developed into languages just as complex as standard application languages (java, c++, ect). With the complexity comes the wonderful availability for OOP programming.

The thing is most web programmers are not OOP programmers, the standard for the web has been to be a functional programmer (just writing functions) so a straight up web developer might not be very familiar with OOP programming. OOP programming (creating objects and classes) can be a great resource when writing complex applications.  This post is not about how to create an OOP web application (though, writing one might be handy).  I wanted to write a post that describes my thought process of when to be OOP, because there are times when it’ll benefit you as a developer and times when it’s just unnecessary overhead.

Rule of thumb – functions

Now we all know that functions are a nessecity, reduces redundent code, automates things, makes your life easier (Side note:  I had a few friends in one CS course during college who went the whole semester never writing functions just straight up code. The class was a bioinformatics course using perl so I have no idea why they wanted to do this.) I have a general rule of thumb before writing a function.  For me to place code into a function it’s got to meet at least one of these requirments;

  1. Will I end up writing this code more then twice
  2. Is this code going to be utterly complex, and long (will break into multiple functions)
  3. Can I use this anywhere else

If the code matches one of those then I’ll put it into a function.  If not I might even still put it in a function.  The key is reusability.

Rule of thumb – classes/objects

Now my rule of thumb for creating a class and doing some OOP is almost like my rule of thumb for creating functions, except it deals with functions not just code;

  1. Will I need to reuse these functions multiple times? (and together)
  2. Would it benefit to prevent user from accessing these functions (using OOP ‘private’)
  3. Could I use these functions together in the future

So if a group of functions meets any of those requirements, I’ll rewrite them to be a class.  For example, in PHP I have a general Email class that I can put into any project that needs e-mail capabilities.  and to use it I just need to include it and invoke the object.

It makes it simple for me to add e-mail to any project, and reduces the code I would have to rewrite.  This increases my time for further development.

OOP in web development is also a great plus because you can keep classes and objects independent from each project, allowing you to build up a library that you can use in any project (again reusability!).  this reduces the time you have to take to rebuild something you’ve done in a previous project and gives you more time to produce richer, fuller web applications.