Published: Friday, January 11th, 2008

This is the second installment of my Auth Component Tutorial. I included a link to download a file for during the first installment:

Download: CakePHP Auth 1  CakePHP Auth 1 (4.3 KB, 1,631 hits)

I just think that some of the stuff in there warrants some explanation.

isAuthorized()

This function is needed when $this-Auth->authorize = ‘controller’. Theory has it, you can do something similar in app_model if $this-Auth->authorize = ‘model’, but I haven’t looked into this.

The thing that confused me about this is that I thought you were required to perform your own validation. But oh no, this is additional authorization. Sort of like what beforeSave() does, where you can cancel the save after the validation. isAuthorized() is performed after the user has been logged in. If after that, you need some additional stuff, then you can put it in there. I’m not sure why it doesn’t default to return true like beforeSave() (if everything goes well), but if it’s not present, it errors out.

$this->Auth->user(’group_id’)

In my User Model I have a field called group_id. So you guessed it, this just returns the group_id of the user that’s logged in. Things couldn’t be simpler.

If you're new here, you may want to subscribe to my Full RSS feed. Thanks for visiting!



Published: Tuesday, January 8th, 2008

First off, I would like to say much thanks to Gwoo for finally helping me to understand this thing.

So I know what you're thinking; I'm probably the last person to finally figure out the CakePHP's Auth Component. For the past few months, I've been using obAuth because that's the only authentication I could get to work with CakePHP. I think that I was just making it more difficult than it should have been.

My main resource for learning the Auth Component has been Chris's tutorial, but even then I still needed help. Also, I'm the type that doesn't really learn much without code.

Note that I'm running off of the CaekPHP 1.2 beta.

Getting Started

Now you can modify this however you like, but I'm starting out with the basics. You're going to need the following:

  • A user database with fields username, password. Of course they don't need to be named that way, but defaults are fun.
  • A User Model with Controller and Views - This can be baked from CakePHP
  • A login view for the user.
  • And a base app_controller.php. That's it.

The Setup - app_controller and users_controller

So here's the minimum in app_controller:



Published: Monday, January 7th, 2008

So I guess the CakePHP development staff doesn't take any holidays. Bright and early New Years Day 2008, we're greeted with a fresh new release of CakePHP 1.2.6331 beta. No, not pre-beta a full blown beta. Needless to say I'm excited about this.

There have been some nice changes which have gone through all through the Christmas season. Guys, I thank you for your dedication. The one major thing I'm excited about is the way that the Form Helper now processes dates and times; there's no longer a cleanUpFields() function, everything is automatic (or should I say automagic). You'll have modify your code since the result in $this->data is slightly different. There's been some stuff deprecated and some stuff added.

The Model::generateList() function has also be deprecated, in favor of Model::find('list'). It's not an exact duplicate of generateList() but it gets the job done. Check out the cakebaker for more essential tips for upgrading from CakePHP 1.2 pre-beta to the fresh new CakePHP 1.2 beta.

Enjoy and Happy Baking!

Popularity: 46%



Published: Wednesday, January 2nd, 2008

I can't remember where exactly I heard about this web host, but InsaneGB.com sounded like a great deal. You can read their website for more details, but in a nutshell they got PHP 5, MySQL 4, and everything (Databases, Add-on domains, etc) is unlimited except disk space and bandwidth. They give you 5GB for disk space and 20GB on bandwidth per month. Which is great for a free host, if you ask me; heck, they even offer cron jobs.

Testing Their Setup

So I decided to give them a shot. I put up my personal blog on their server. In retrospect, maybe that wasn't such a great idea, but I did it anyway. At first everything was great. Stuff was fast and everything was popping up instantly. There were some things that most would consider acceptable for a free host.

  • I couldn't run any PHP ini_set commands

    So there's no increasing running time for scripts. I guess I would live without that.

  • You can't open/download any files from outside servers

    This I came across when trying to use some of my Wordpress plugins that automatically install plugins and automatically upgrade the Wordpress installation. Oh, well.



Published: Friday, December 28th, 2007

One of the nice things about CakePHP is that it includes ready to use CSS compression. Granted, compressed CSS can be buggy at times, but for the most part it works just fine.

I've always wondered why no one has included something like this for Javascript, since that's usually the bigger culprit when we're talking about document size. I've tried using Minify in the past. However, it took a lot to get it working right. And I really hate hacking stuff just to work with CakePHP. That, coupled with the fact that I'm a lazy bastard, meant that I gave up the Minify train rather quickly.

Mark Story To The Rescue - JSMIN Javascript Helper

At the time, I hadn't heard about the JSMIN library, which does pretty much the same thing the Minify does, but without the CSS. Luckily, Mr. Story had some vision after his Christmas festivities and cake up with a JSMin Helper for CakePHP. This helper works by Minifying the chosen Javascript. This involves stripping unnecessary characters (line breaks, comments, spaces, etc) from the .JS file.

It also includes functionality to cache the resulting files. What more can you ask for?

Usage:



Published: Wednesday, November 28th, 2007

Poll results for What Do You Look for in a PHP Framework are in:

What Do You Look for in a PHP Framework

Most of you prefer a framework that is Quick and Easy. Hey, I'm totally with you guys on that. When deciding on a web development framework, it has to be easy. It's no fun if it takes hours to learn and saves you minutes. For me, CakePHP definitely fits this bill. The bake routines save me so much time during initial development.

Next on the list was a Less Code Needed and a Small Learning Curve. Again, that would definitely fit high on my list. I'm sorry, I'm just lazy that way.

That last result on the list is interesting, but expected. Not many people needed the framework to have a Small Footprint. With the type of processing that is required nowadays, sometimes the lite/light version doesn't cut it. With that said, we also have a lot more processing power to push those heavy frameworks along. In my opinion, it's less important that a back end framework be light as apposed to a JavaScript framework. The back end is handled strictly by the server, so the user doesn't take the hit. With a JavaScript framework the user needs to download the entire thing. In this day and age it has become more cost effective to through some more CPU at the problem while saving weeks (or even months) in development time.



Published: Friday, November 23rd, 2007

XHTML
Now i doubt it has crossed anyone's mind to use CakePHP to create a custom content management system (CMS). Even though you're not designing a full blown CMS, sometimes it's nice to give novice users a way to create HTML content for a website or web application. The simplest way to do this is to integrate a WYSIWYG (What You See Is What You Get) editor.

When it comes to WYSIWYG editors, they are a dime a dozen. There is of course the world famous TinyMCE. There is already an article in the bakery on how to use TinyMCE with CakePHP. There's htmlArea and even openWYSIWYG.

Although I generally love TinyMCE, for my last project I needed to give the user the option to upload images. FCKeditor is the only editor that offers this functionality for free. Some say that it's bloated, but you can always trim it down to only what you need. Actually the new (October 10th, 2007) version is pretty snazzy. They've done away with the font tag and just made it a lot cleaner.



Published: Monday, November 5th, 2007

First of let me state that this post is very bias towards CakePHP. Truth be told, I haven't even installed or used Ruby on Rails. The closest I've come is looking at various code snippets I've found around. With that said, you may want to stop reading now.

These arguments are not based on hard facts, since I haven't done much research on the matter. A lot of them come from a post at Clickable Bliss discussing the PHP vs. Ruby On Rails Issue.

  1. Steep Learning Curve - Laziness

    One thing I really hate is learning stuff. It is especially bothersome when you're trying to crank out a project or web application in a limited amount of time.

    With CakePHP I'm required to learn about the MVC style of development as well as CakePHP conventions.

    With Ruby on Rails, I would have to learn MVC, Ruby on Rails conventions and I would have to start from scratch with the Ruby programming language as well.

    Popularity: 52%