Automatically exported from
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


kbzb version 0.01

Kbzb (pronounced 'kib-zib') is a Perl port of CodeIgniter, a kick-ass
web application framework for PHP. CodeIgniter's goal "is to enable 
you to develop projects much faster than you could if you were writing 
code from scratch, by providing a rich set of libraries for commonly 
needed tasks, as well as a simple interface and logical structure to 
access these libraries."

Why write yet another web framework when so many already exist 
(Maypole, Catalyst, Jifty. CGI::Prototype, CGI::Application, 
Gantry...)? I've worked in many shops with apps written in both Perl 
and PHP, and maintenance is a headache because everything is done so 
differently. This addresses that. And as much as I'm a big fan of 
CodeIgniter?, I'm not a big fan of PHP. This addresses that, too.


The places where Kbzb diverges from CodeIgniter are few but significant: 
namespaces, database access, HTML templating, configuration. 

1. Perl packages provide namespaces, something most PHP versions sorely
   lack. Kbzb uses packages as a simpler and cleaner alternative to some 
   of the funky classloading tricks CodeIgniter goes through to allow 
   you to extend or replace core libraries and to load helper modules. 
2. Perl has long provided a high-level database abstraction package in 
   DBI, something PHP sorely lacked until PDO came along.

3. Kbzb templates are not Perl scripts in the sense that CodeIgniter
   templates are PHP scripts. Kbzb's template system is rather like
   a light version of the well-known and widely-used Template::Toolkit
   module; see the kbzb::libraries::parser module for details. 

4. Kbzb configuration files are just that: plain text config files. 
   CodeIgniter configuration files are PHP scripts that are include'ed
   or require'ed into a class. This may change in a later version.


You can install this module in the traditional way (perl Makefile.PL ...) 
or you can simply copy ./cgi-bin/kbzb.cgi into your webroot, and edit a 
few lines as indicated in the comments so that it knows where to find its 

To install this module in the traditional way, do the following:

   $ perl Makefile.PL
   $ make
   $ make test
   $ make install
   $ cp cgi-bin/kbzb.cgi /path/to/cgi-bin/some-app/index.cgi
   $ cp -R app /path/to/app/directory/
   edit the CGI script, setting the BASEPATH, APPPKG and APPPATH 
   variables as instructed by the comments. 


Except for the database classes, Kbzb's core modules have NO dependencies
outside Perl 5.8.0. To use the database classes, you need the database
abstraction layer DBI ( and a platform-specific 
implementation layer provided by DBD 
(, but everything else should run 
out of the box. This is, perhaps, a bad idea as CPAN provides all manner of 
modules which could make have made writing Kbzb easier. But part of 
CodeIgniter's philosophy is to make installation easy and dependency-free, 
and this project carries that forward.


This software is derived from CodeIgniter 1.7.1, Copyright (c) 2008, EllisLab, Inc.

Copyright (C) 2009 by Zak Burke

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.0 or,
at your option, any later version of Perl 5 you may have available.