Easy, Fast, Flexible

PzPHP is powerful, lightweight, and flexible framework. Instead of bringing the bulk and strict constraints of large and complex frameworks; PzPHP is built for developers who value performance and ease of use.

$_PZPHP = new PzPHP_Core();
$_PZPHP->routing()->setSiteUrl(PzPHP_Config::get('URL'));
$_PZPHP->routing()->add(
	'home',
	'/',
	'Controller_Home',
	'indexAction'
);
echo $_PZPHP->routing()->listen();



Flexible Database & Caching Layer

PzPHP has a database and chaching abstraction layer that allows you to switch between different types of storage engines, or caching systems, with minimal changes to your code.

It also allows you to easily manage several connections to databases or caching servers, allowing for seamless switching between different mysql databases, or memcached servers, for example.

$select = $_PZPHP->db()->select("SELECT * FROM tbl");
if($select && $_PZPHP->db()->returnedRows($select) > 0)
{
	while($row = $_PZPHP->db()->fetchNextRowAssoc($select))
	{
		//do stuff
	}
}



Powerful Security Features

PzPHP offers one-way and two-way encryption methods that take out the stress of securing passwords, and other sensitive information. Using easy to modify configuration options, you can customize your PzPHP installation to use a unique encryption algorithm.

The standard one-way encryption method also employs hash poisoning, which adds an extra layer of protection to your passwords. Which means even if hackers get a list of your hashed passwords, it would be almost impossible to bruteforce them to get the original string values.

//hashed and poisoned string is returned
$hashed = $_PZPHP->security()->oneWayEncrypt('my password');

if(
	$_PZPHP->security()->oneWayHashComparison(
		'entered password 777',
		$hashed
	)
)
{
	//hash comparison returned true (unlikely in this case)
}
else
{
	//hash comparison returned false (likely in this case)
}



Performance Centric

PzPHP is meant to be fast. When using the database and caching layers, connections are only made once your code attempts to run queries or request/write keys. This means you don't have to worry about connecting (or disconnecting) to your storage or caching engines.

The framework itself is built using the least amount of bloat as possible. That means classes and methods get straight to the point.