require_once 'XhtmlMenu.php'; require_once 'XhtmlForm.php'; require_once 'FileList.php'; require_once 'FileInfo.php'; //project includes: require_once 'functions_process.php'; require_once 'TaskQueue.php'; //XXX move to core_dev when matured $page = XmlDocumentHandler::getInstance(); $page->designHead(dirname(__FILE__) . '/design_head.php'); $page->designFoot(dirname(__FILE__) . '/design_foot.php'); $page->setUrl('http://processtest.x/'); $page->setCoreDevInclude($coredev_inc); ///XXX peka på "/path/to/core_dev/core/" katalogen, hör egentligen inte till page handlern men den hör inte till något bra objekt... separat core-dev handler???? $page->setApplicationPath(); $db = SqlFactory::factory('mysql', true); // enable profiler SqlHandler::addInstance($db); //registers the created database connection as the one to use by SqlHandler //$db->setConfig( array('host' => 'process1.x:44000', 'database' => 'dbProcess', 'username' => 'ml', 'password' => 'xx') ); $db->setConfig(array('host' => 'localhost:44308', 'database' => 'dbProcess2', 'username' => 'root', 'password' => 'xx')); $page->enableProfiler(); $locale = LocaleHandler::getInstance(); $locale->set('swe'); $session = SessionHandler::getInstance(); $session->setName('savakID'); $session->setTimeout(60 * 60 * 24 * 2); //keep logged in for 2 days! $session->setEncryptKey('sdcu7cw897cwhwihwiuh#zaixx7wsxh3hdzsddFDF4ex1g'); $session->allowLogins(true); $session->allowRegistrations(false);
/* * 利用__call和反射,实现一个简单的工厂 */ class Mysql { function connect($db_config) { echo "Mysql Connect:" . json_encode($db_config) . "\n"; } } class SqlFactory { private $target; function __construct($tar) { $this->target = new $tar(); } function __call($name, $args) { $ref = new ReflectionClass($this->target); if ($method = $ref->getMethod($name)) { echo "Before Call\n"; $method->invoke($this->target, $args); echo "After Call\n"; } } } $db_config = array('host' => '127.0.0.1', 'port' => '3306'); $sql = new SqlFactory('Mysql'); $sql->connect($db_config);
<?php /** * Created by PhpStorm. * User: bamdad * Date: 2/3/2016 * Time: 9:02 PM */ include_once './autoload.php'; $sqlCleaner = new SqlFactory('task'); var_dump($sqlCleaner->getInsertQuery(array('id' => 1, 'name' => 'mytask', 'description' => 'no description', 'creationDate' => '2016-04-11 20:25:34', 'dueDate' => '2016-04-11 20:25:34', 'priority' => 1, 'type' => 3, 'stat' => 'yes'))); var_dump($sqlCleaner->getUpdateQuery(array('id' => 1, 'name' => 'mytask', 'description' => 'no description', 'creationDate' => '2016-04-11 20:25:34', 'dueDate' => '2016-04-11 20:25:34', 'priority' => 1, 'type' => 3, 'stat' => 'yes')));