From b652c6750107110c23748986cb05054979f5192e Mon Sep 17 00:00:00 2001 From: Christian Schneider Date: Wed, 10 Oct 2007 16:16:01 +0000 Subject: Various README enhancements --- README | 121 ++++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 74 insertions(+), 47 deletions(-) diff --git a/README b/README index dc4c9ea..8913b76 100644 --- a/README +++ b/README @@ -1,81 +1,97 @@ +ITools - A simple support library for PHP +========================================= -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. +ITools is a collection of PHP functions and classes which make a few common +tasks in PHP easier. It works in PHP 4 and up. Typical tasks should become +easy enough to remove the need for a framework. -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. +Note: Our examples omit array() around function parameters and use dangling +commas. If you want to do that, you either need our PHP patch (see +http://cschneid.com/php/ for infos and the 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. +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!"), + 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 + new it_html($config) -- create global functions, choose (x)html style + div($attributes, $content) -- return a
with attributes and content + html($params, $content) -- return a but adds correct doctype + head($params, $content) -- return a but needs special params + select($tags, $options, $selected) -- build a html select from an array + tag($tag, $content) -- create arbitrary <$tag> + Q($str) -- html encode a value, roughly like htmlentities + U($arr) -- create a valid url from strings and key=>value + it_html::sanitize($html) -- remove 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. +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 ensures +correct quoting, see select(). Errors are by default reported within dbi. Example: it_dbi::createclasses(); $record = new T_Customers('ID' => 'mueller'); $record->update('email' => "mueller@spam.com"); - $response = "Email added for " . $record->name; + $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_dbi::createclasses($confg) -- create database objects for each table name + $t = new Tablename($query) -- return a dbi object, executes optional select + $t->select($query) -- read first result of (encoded) query into t. + $t->iterate() -- advance to next result + $t->update($fields) -- update selected record from key=>value pairs + $t->insert($fields) -- insert a new record from key=>value pairs + $t->replace($fields) -- replace a new record from key=>value pairs + $t->delete($query) -- delete current record or those found by query + $t->query($sqlquery) -- execute a raw SQL 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. +it_text finds the best language to use from browser and override settings. It +then reads texts.php in the format documented in the constructor. 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 + new it_text($config) -- read texts. usually called implicitly + T($label) -- return translated $label + ET($label, $values) -- return translated $label w/ values replaced T_lang() -- returns current language - T_set_language($lang) -- sets a new language + T_set_language($language) -- 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. +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 @@ -93,25 +109,33 @@ Functions: 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 +a) Much simpler perl regex matching (no delimiters, matches returned directly +as scalar or array, case insensitive, locale support) and a multi-pattern +replacement function. +b) 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. +c) 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::error('title'=>"cannot connect", 'id'=>"db"); # suppress sporadic errors it::fatal("internal error"); - it::error('title'=>"cannot connect", 'id'=>"db"); # suppresses sporadic errors + $diff = it::exec("diff -wu {old} {new}", 'old' => $old, 'new' => $new); + it::imageconvert('in' => "src.jpg", 'out' => "dst.jpg", 'size' => "80x80"); 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::match($pattern, $subject, $opts) -- find pattern in subject using opts; return matches + it::replace($replace, $subject, $opts) -- replace patterns in subject; return result + it::error($info) -- print or mail error message + it::fatal($info) -- print or mail error message, then exit + it::bail($message) -- print message to stderr, exit with errcode + it::exec($command, $values) -- execute command, return output + it::getopt($usage) -- parse (or print) usage, return options, + it::gets() -- fetch next line from stdin or named arg + it::imageconvert($params) -- Convert image using ImageMagick convert @@ -127,14 +151,17 @@ Example: ); 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_url::get($params) -- performs GET/POST requests to web servers + it_url::get_cache($params) -- performs GET/POST and caches the result it_user - Session handling -------------------------- -This allows maintaining session cookies and authentication status for users. Not documented yet, check the source. +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. +This will parse an XML string and returns a tree of PHP objects; similar to +simplexml in PHP 5 but works in PHP 4 and supports a streaming mode for huge +XML files. Not documented yet, check the source. -- cgit v1.2.3