Category Archives: CakePHP

Modifying the CakePHP Bakery Templates

One of the keys to a successful website is a good user flow.  What defines a good user flow?  At the very core, it requires simple navigation, being able to find what you’re looking for, and being able to do it quickly.  CakePHP’s bakery let’s you quickly create websites that list, add, edit, and delete data.  All you need to do is create a database table and run a few simple bakery commands and this will be done for you.

The basic templates provided are pretty good.  They include links to do all of the above as well as pagination and sortable headers on the table listing page.  I find them a little bland and very “techie”.  Most customers don’t like this, so let’s alter them to suit are needs. Read more »

Share

Maintaining the back button with AJAX

Last week I blogged about whether or not you can use too much AJAX on your website.  The short answer was no; with one caveat being that you must not lose the user interaction experience.  In this scenario I’m referring to the back button.  If the user has “felt” like the content changed, they are likely to click the back button to return.  If they do this, it’s important for them to “go back” to where they “think” they were and not the last page that was loaded without AJAX!  I’ve put together a quick example of how to do this. Read more »

Share

Optimizing CakePHP Websites

CakePHP offers a lot of functionality to us as developers. The ability to develop websites rapidly provides a trade-off in how quickly the website will load. As we expand our skills, we will learn the techniques that will slow down/speed up performance.

Objectives

  • Apply techniques to speed up CakePHP’s load time
  • Optimize our queries
  • Cache query results

Read more »

Share

Adding SEO functionality

Two of the biggest things that will improve your search engine rankings are keyword rich website titles and keyword rich links to your content. Today’s lessons will cover both of these topics.

Objectives

  • Improve our search engine rankings
  • Set a title tag
  • Map a specific URL to a custom controller and action
  • Avoid using ids or numbers in our URL

Before I start, I would like to make it clear that this article is and does not intend to be a be-all-to-end-all of the SEO necessities for your website. It is meant to describe some excellent techniques to quickly and easily improve upon CakePHP to make it more SEO friendly. Read more »

Share

unbindModel and $this->paginate()

Ugggh what a disaster today was!  On a client’s site, we have an older version of CakePHP, pre containable functionality.  Because of this, we have to use unbindModel and bindModel to accomplish the same functionality.

Over the past while, it has not been such a big deal.  However, for some other unknown reason, a search feature wasn’t returning back the appropriate associative data.  This had been working for quite some time, then suddenly stopped.  As I mentioned, I’m not exactly sure when and why it stopped working, but it did. Read more »

Share

Photobucket, Photos, and You

It seems like photo sharing and social network applications are the in thing right now. Let’s take advantage of this. Today I will provide a simple class that will allow you to post photos to a user’s Photobucket account in minutes.

Step 1: Visit http://photobucket.com/developer/register to register for an API key

Follow the steps to create a new application on Photobucket. When you have finished, Photobucket will send you an email with your API and Secret key. Keep this email for later use.

Read more »

Share

Facebook, Photos, and You!

The Facebook Application API is quite extensive and allows you to get and set many different aspects of a user’s Facebook information.

Today, we are going to discuss using the Facebook API to create an album, if it doesn’t already exist, and add a photo to that album. Read more »

Share

Caching Queries in CakePHP

If you haven’t noticed already, at times CakePHP can be a little slow loading!  The reason for this is quite simple.  Rapid Application Development.  To allow for RAD, sometimes we must give up something, in this scenario it’s a bit of speed when loading.  Don’t worry, CakePHP offers some excellent utilities to help with this.

The one I will focus on today is caching our CakePHP query results.  The key to this is, we are caching the results, not the queries themselves.  If you know databases well, you may be thinking, “why do I want to cache queries, doesn’t my database server do this already?”  The answer to the question is, yes it does.  However, CakePHP still needs to call the database query and parse your results.  What I’m proposing, will avoid both of those steps and allow you to just retrieve the results.

This process not only avoids excess load on the database, it also reduces PHP’s processing time that CakePHP has to do to provide you with such useful arrays. Read more »

Share

Custom pagination query in CakePHP

My pet peeve list seems to grow on a regular basis.  One of them is poorly optimized code.  Not only is the code I’m going to discuss poorly optimized, it’s from the documentation of CakePHP!

If you search for creating custom pagination in CakePHP, you will find quite a few results, potentially this one.  The one that I would assume the best would be the one from CakePHP itself, but it’s not and let me show you why. Read more »

Share

3 Flaws to CakePHP’s AuthComponent

Good Friday to all.  Over the past several weeks I have been working a lot with the AuthComponent in CakePHP and have learned a couple of lessons that I wanted to share with you all.

The title calls them “flaws”, but I suppose this isn’t completely accurate, it depends how you look at it.  To me they are flaws because I assumed the AuthComponent worked one way, only to find out different. Read more »

Share

Buy one of my books