itools is a collection of php functions and objects which should make a few common tasks in php easier. It is php 4 and php 5 compatible. The methods are documented in the source code. Note: Our examples omit array() around function parameters and use dangling commas. If you want to do that, you either need our PHP patch or our just-in-time syntax converter. it_html - HTML output generation -------------------------------- it_html creates a global function for each common html tag. Those functions accept variable arguments, key=>value pairs as considered attributes. Example: new it_html; echo html( head('title' => "welcome earth"), body( p('style'=>"margin:1em", a('href'=> U("http://google.com/", 'q'=>"Hello World"), "Hello World!"), ), ), ); Functions: new it_html($config) -- create global functions, choose (x)html style div($attributes, $content) -- returns a
with attributes and content html($params, $content) -- returns a but adds correct doctype in front head($params, $content) -- returns a but only supports special params select($tags, $opts, $sel) -- builds a html select from an array tag($tag,$content) -- like the other tag funcs but uses arbitrary tagname Q($str) -- html encodes a value, roughly like htmlentities() U($arr) -- creates a valid url from strings and key=>value it_html::sanitize() -- removes dangerous tags from html code it_dbi - Database access ------------------------ The dbi object is a simple mysql interface. For each table in your database, a class is created automatically. Queries are encoded as arrays which enables correct quoting, see select(). Errors are by default handled within dbi. Example: it_dbi::createclasses(); $record = new T_Customers('ID' => 'mueller'); $record->update('email' => "mueller@spam.com"); $response = "Email added for " . $record->name; Functions: it_dbi::createclasses($conf) -- creates database objects for each table name $t = new Tablename($query) -- returns a dbi object, executing optional select $t->select($query) -- reads first result of (array encoded) query into t. $t->iterate() -- advances to next result $t->update($fields) -- updates a selected record based on key=>value pairs $t->insert($fields) -- inserts a new record from key=>value pairs $t->replace($fields) -- replaces a new record from key=>value pairs $t->delete($query) -- deletes current record or those found by query $t->query($rawquery) -- execute a raw query on db connection it_text - Translation support ----------------------------- it_text finds the best language to use from browser and override settings. It then reads texts.php in the format array('label'=>array('lang'=>"translated text")). You can then use T() to translate a label. Unknown labels are logged in text_log. Example: echo T('hello') . ' ' . Q($customer->name); echo ET('chainletter', 'name' => Q($customer->name)); Functions: new it_text($conf) -- reads texts. doesn't need to be called by default T($label) -- returns translation of $label ET($label, $values) -- returns translation of $label with variables replaced T_lang() -- returns current language T_set_language($lang) -- sets a new language T_exists($label) -- returns whether a label is defined it_debug - Debug support ------------------------ it_debug is used for debugging. The function ED($foo, $bar) outputs echoes the values of $foo and $bar AND prepends it with the names of the variables. EDX() does the same and exists. EDC('verbose', $foo) only echoes if $GLOBALS['debug_verbose'] is set. it_debug::backtrace() outputs a compact stackdump. Example: ED($foo, $bar); # outputs name and value of $foo and $bar EDC('verbose', $foo); Functions: ED($args...) -- echoes names and values of all args EDX($args...) -- echoes names and values of all args and exits EDC('foo', $var...) -- echoes only if $GLOBALS['debug_foo'] is set D($args...) -- returns formatted names and values of params it_debug::backtrace($skip) -- prints short backtrace, skipping $skip levels it.class - Tool functions ------------------------- it.class provides various statically callable functions. The main groups are: - much simpler perl regex matching (no delimiters, matches returned directly as scalar or array, case insensitive, locale support) and a multi-pattern replacement function - better error functions: stack and variable dumps added to error messages, error messages mailed if display_errors is off. Extra parameter allow the filtering of sporadic errors - better shell support, specifically a command line parser and an exec function that handles quoting Example: $from = it::match('From: (.*)', $mail); $page = it::replace('<.*?>' => '', ' +' => ' ', $page); it::fatal("internal error"); it::error('title'=>"cannot connect", 'id'=>"db"); # suppresses sporadic errors Functions: it::match($patt, $subj, $o) -- finds patt in subj using options and returns match(es) it::replace($rep, $subj, $o) -- replaces patterns in rep in subj and returns result it::error($arg) -- prints or mails error message; more opts if arg is array it::fatal($title) -- same as it::error but exits it::bail($msg) -- print message to stderr and exit with error code it::exec($cmd, $values) -- execute command, return output it::getopt($usage) -- parse (or print) usage, return options, it::gets() -- fetch next line from stdin or named arg (must call it::getopt first) it_url - URL handling --------------------- Helper functions dealing with URLs. Example: $filename = it_url::get_cache( 'url' => "http://static.php.net/www.php.net/images/php.gif", 'timeout' => 5, 'cachedir' => $_SERVER['DOCUMENT_ROOT'] . "/cache", ); Functions: it_url::get($params) -- performs GET and POST requests to web servers it_url::get_cache($params) -- does the same but caches the result; supports filters it_user - Session handling -------------------------- This allows maintaining session cookies and authentication status for users. Not documented yet, check the source. it_xml - XML parser ------------------- This will parse an XML string and returns a tree of PHP objects; similar to simplexml in php5 but works in php4. Not documented yet, check the source.