updated controllers and views to use new configuration-driven database objects

This commit is contained in:
tmont 2008-11-02 02:16:33 +00:00
parent 10e076a269
commit 4eb51ee6ae
7 changed files with 22 additions and 37 deletions

View File

@ -15,6 +15,13 @@
$uriRegex = str_replace('\\', '/', $uriRegex);
$uriRegex = '^' . $uriRegex . '/([^/]*)(?:/([^\?]*)(?:\?(.*))?)?';
$configFile = dirname(__FILE__) . DIRECTORY_SEPARATOR .
'lib' . DIRECTORY_SEPARATOR .
'config' . DIRECTORY_SEPARATOR .
'panacea.ini';
$config = new Configuration($configFile);
/*
* $uriRegex: ^/webroot/([^/]*)(?:/(.*)(?:\?(.*))?)?
*
@ -27,6 +34,6 @@
Dispatcher::getInstance()->setUriRegex($uriRegex)
->setThrowExceptions(true)
->setControllerFactory(PanaceaControllerFactory::getInstance())
->dispatch($_SERVER['REQUEST_URI']);
->dispatch($_SERVER['REQUEST_URI'], $config);
?>

View File

@ -32,8 +32,8 @@
*
* @param WikiPage $page A wiki page
*/
public function __construct(WikiPage $page) {
parent::__construct($page, PanaceaWikiParser::getInstance());
public function __construct(WikiPage $page, Configuration $config) {
parent::__construct($page, new PanaceaWikiParser($config));
}
}

View File

@ -22,13 +22,6 @@
*/
class PanaceaWikiParser extends WikiParser {
/**
* The singleton instance
*
* @var WikiParser
*/
private static $instance = null;
/**
* Creates a new {@link PanaceaWikiParser}
*
@ -36,28 +29,12 @@
* @since 2008-10-19
* @todo Use configuration object for linkRoot
*/
protected function __construct() {
parent::__construct();
public function __construct(Configuration $config) {
parent::__construct($config);
$this->linkRoot = '/panacea/src/wiki';
}
/**
* Gets the singleton instance
*
* @author Tommy Montgomery
* @since 2008-10-19
*
* @return PanaceaWikiParser
*/
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
}
?>

View File

@ -63,7 +63,7 @@
* @throws {@link InvalidRequestException} if a {@link View} cannot be created
* @return PanaceaTemplateView
*/
public function handleRequest(Request $request = null) {
public function handleRequest(Request $request = null, Configuration $config = null) {
if (!($request instanceof Request)) {
$request = Request::create(HttpUtil::getRequestMethod());
}

View File

@ -50,7 +50,7 @@
* @throws {@link InvalidRequestException} if a {@link View} cannot be created
* @return PanaceaTemplateView
*/
public function handleRequest(Request $request = null) {
public function handleRequest(Request $request = null, Configuration $config = null) {
if (!($request instanceof Request)) {
$request = Request::create(HttpUtil::getRequestMethod());
}

View File

@ -53,12 +53,12 @@
* @throws {@link InvalidRequestException} if a {@link View} cannot be created
* @return PanaceaTemplateView
*/
public function handleRequest(Request $request = null) {
public function handleRequest(Request $request = null, Configuration $config = null) {
if (!($request instanceof Request)) {
$request = Request::create(HttpUtil::getRequestMethod());
}
$mysql = MySql::getInstance('wiki', 'localhost', 'root', 'layne', 'wiki');
$mysql = new MySql($config);
//handle request metadata
if ($request->method === HttpUtil::HTTP_METHOD_POST) {
@ -68,7 +68,7 @@
try {
try {
$wikiObject = new PanaceaWikiPageObject(WikiPage::loadByPageName($mysql, $this->page));
$wikiObject = new PanaceaWikiPageObject(WikiPage::loadByPageName($mysql, $this->page), $config);
$wikiObject->setRevision(WikiHistory::REV_LATEST, $mysql);
}
catch (DomainException $e) {
@ -77,8 +77,10 @@
$this->action = 'new';
}
$vendor = new MySql($config);
$templateView = new PanaceaTemplateView('Wiki :: ' . $this->page);
$templateView->mainView->addView($this->viewFactory->getView($this->page, $wikiObject, $this->action, $this->page));
$templateView->mainView->addView($this->viewFactory->getView($this->page, $wikiObject, $vendor, $this->action, $this->page));
return $templateView;
}

View File

@ -30,17 +30,16 @@
* @uses addView()
*
* @param WikiPageObject $page The wiki page to display
* @param DatabaseVendor $vendor A database connection object
* @param string $action The action to take
* @param int $priority The priority of the view
* @param string $pageName The name of the page
*/
public function __construct(WikiPageObject $page = null, $action = null, $pageName = '', $priority = 0) {
public function __construct(WikiPageObject $page = null, DatabaseVendor $vendor = null, $action = null, $pageName = '', $priority = 0) {
parent::__construct($page, $action, $priority);
$this->addView(new WikiPageMenuView($page, $action, 1));
$vendor = MySql::getInstance('wiki', 'localhost', 'root', 'layne', 'wiki');
switch ($this->action) {
case 'new':
$this->addView(new WikiPageNewView($pageName, 2));