-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
87 lines (60 loc) · 3.38 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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.
DIFFERENCES FROM CodeIgniter
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.
INSTALLATION
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
libraries.
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.
DEPENDENCIES
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 (http://dbi.perl.org/) and a platform-specific
implementation layer provided by DBD
(http://www.cpan.org/modules/by-module/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.
COPYRIGHT AND LICENSE
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.