PEAR::DB_DataObject_FormBuilder howto

Wow, I refactored my calendar web app and used PEAR::DB_DataObject_FormBuilder to make the backend.
One thing I have to admit, the documentation for certain PEAR applications lacks dearly. Just like all OSS packages. It’s just the nature of things.
The personal support I recieved from irc://efnet.org/pear was great. After a little guidance, the members in that chat channel were able to help me out. After my refactoring, I decided to write a basic howto.
A 3 teir design paradigm:

  • DATA
  • LOGIC
  • GUI

This is a little howto on how to use the autoschema generator, I posted this to a wiki as well.
====Assumptions====
– you have pear, DB_DataObject_FormBuilder, and all dependancies instaled.
– You know how to setup the DSN. [have link point to DSN setup]
– You have a database setup.
====Getting started====
– config/db_dataobject.ini
[DB_DataObject]
database = mysql://user:password@localhost/dbName
schema_location = E:/HTTPRoot/Calendar/config/
class_location = E:/HTTPRoot/Calendar
extends = DB_DataObject
extends_location = DB/DataObject.php
require_prefix = DataObjects/
class_prefix = DataObjects_

where database = mysql://user:password@localhost/dbName
user = username
password = password
localhost = the host/ip of your database
dbName = the name of the database
– run ->
php.exe regenerate_dabaobject_info.php
or any other method of running
php.exe DB/DataObject/createTables.php db_databoject.ini
I would recommend have db_dataobject.ini placed somewhere outside of the reach of your webserver deamon.
– …
– Profit!
====Using Foreign Keys in downdown menus===
pseudo schema
tbl_Categories
categories_id;
title;

tbl_Books
books_id;
title;
categories_id;
make a .links.ini file, that accompanies your “dbName.ini” that got generated from above.
inside dbName.link.ini file add:

[tbl_Books]
categories_id : tbl_Categories:categories_id;

inside your generated tbl_Books.php file
add the line to your class

var $fb_linkDisplayFields = array('title', 'categories_id');

inside your generated tbl_Categories.php file
add the line to your class

var $fb_linkDisplayFields = array('title');

inside your db_dataobject.ini
add the line

linkDisplayLevel = 2

You have to set linkDisplayLevel greater than 1. Read the docs for further information
Summary:
1.) Setup the DSN
2.) Run the autoschema generator script
3.) Add some minor FK setup
4.) Done. 🙂

Leave a Reply

Your email address will not be published.