diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 140 | 
1 files changed, 140 insertions, 0 deletions
| @@ -0,0 +1,140 @@ + +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 <div> with attributes and content +  html($params, $content)      -- returns a <html> but adds correct doctype in front +  head($params, $content)      -- returns a <head> 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. |