Federico Cargnelutti

Simple is better than complex. Complex is better than complicated. | @fedecarg

Archive for April 2007

Custom Exception Handlers

leave a comment »

In the same way that set_error_handler( ) sets a handler for uncaught errors, set_exception_handler( ) sets a handler for uncaught exceptions. As exceptions are more powerful than errors, your exception-handling function need only take one parameter: an exception object. From that, you can glean the usual information such as message, line number, etc. Apart from the parameters passed, these work the same as set_error_handler( ). E.g.:

<?php

function handleException($exception)
{
	echo "Caught exception: {$exception->getMessage()}";
}

set_exception_handler("handleException");

throw(new Exception('Testing custom exception handler'));

?>

Having a custom exception handler is a smart move wherever you’re using exceptions, because it essentially captures all exceptions that would otherwise have been uncaught, and gives you one last chance to take some action before the script potentially terminates.

See also: Extending Exceptions

Written by Federico

April 6, 2007 at 11:01 am

Posted in PHP

Extending Exceptions

with one comment

So far, one of the problems with the exception system is all of the exceptions are instances of the same class that only differ by the message they display. This gives us little chance to distinguish between different errors, especially if we localize the error messages into different languages.
Read the rest of this entry »

Written by Federico

April 3, 2007 at 11:02 pm

Posted in PHP

URI Parameters to Array

leave a comment »

Zend_Controller_Router_Route_Module uses a very simple mapping to determine the name of the controller and the name of the action within that controller:

http://framework.zend.com/controller/action/

Notice above that the first segment is always the name of the controller and the second segment is always the name of the action. Optionally, parameters may be defined in the URI that will be passed to the controller. These take the form of key/value pairs:

http://framework.zend.com/controller/action/key1/value1/

Now, lets convert those parameters defined in the URI to an array. Why? Errr, just for fun :)

Read the rest of this entry »

Written by Federico

April 2, 2007 at 10:04 pm

Posted in Frameworks, PHP

Coding Standards

leave a comment »

The structure of a software system exists not only at the macro level of general architecture, but also at the micro level of the actual code. As systems grow larger and more complex, having a defined coding standard starts to pay dividends. Every programmer has his favourite style of coding, whether related to indentation, naming, brace styles, or new lines, but there’s a very simple rule to bear in mind when talking about coding standards on a project. Read the rest of this entry »

Written by Federico

April 1, 2007 at 10:46 pm

Posted in Frameworks, PHP

Follow

Get every new post delivered to your Inbox.

Join 1,033 other followers