summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUrban Müller2007-10-05 14:52:28 +0000
committerUrban Müller2007-10-05 14:52:28 +0000
commit923f1455347486077f0de75f064a2350e2420603 (patch)
tree236b7e7aff5c97671db82213a2fe7d403695cb8b
parentb52f769c22e46ee2b8461c631a3ada9fc3f845a2 (diff)
downloaditools-923f1455347486077f0de75f064a2350e2420603.tar.gz
itools-923f1455347486077f0de75f064a2350e2420603.tar.bz2
itools-923f1455347486077f0de75f064a2350e2420603.zip
TFM
-rw-r--r--.gitattributes1
-rw-r--r--README140
2 files changed, 141 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
index 9de7133..d9d41b7 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,5 @@
* text=auto !eol
/AUTHORS -text
/COPYING -text
+/README -text
itjs/error.gif -text
diff --git a/README b/README
new file mode 100644
index 0000000..dc4c9ea
--- /dev/null
+++ b/README
@@ -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.