静坐常思己过,闲谈莫论人非,能受苦乃为志士,肯吃亏不是痴人,敬君子方显有德,怕小人不算无能,退一步天高地阔,让三分心平气和,欲进步需思退步,若着手先虑放手,如得意不宜重往,凡做事应有余步。持黄金为珍贵,知安乐方值千金,事临头三思为妙,怒上心忍让最高。切勿贪意外之财,知足者人心常乐。若能以此去处事,一生安乐任逍遥。
今天还是打算放弃PHPMVC了
作者:大鹏 发布于:2007-6-14 23:54 Thursday
分类:PHP&MySql
由于对java的Struts比较熟悉,所以前段时间突然对PHPMVC产生了兴趣。从官方网站上下载了框架之后,测试了一下,觉得和Java的Struts非常相似,所以很容易上手。
做了几个简单的例子之后,使用了它自带的Adodb的库,感觉和adodb结合得还算可以,特别是数据库的配制简直就是和Struts中的数据库连接池一模一样。
[codes=xml]
key = "ADODB_MYSQL_DATA_SOURCE"
type = "AdodbDataSource">
>
[/codes]
Action类中对数据库操作
[codes=php]
function validate($mapping, $request) {
// Select our datasource, as per the phpmvc-config.xml
//
$dsKey = 'ADODB_MYSQL_DATA_SOURCE';
// Open a connection to the requested datasource on the first call.
$db =& $this->actionServer->getDataSource($dsKey);
// Use Read-Only database access here.
$sql = "Select * From test_customer";
$recordSet = $db->Execute($sql);
if (!$recordSet) {
exit($db->ErrorMsg());
}
$rowArray = $recordSet->FetchRow();
if (!$rowArray) {
exit($db->ErrorMsg());
}
// We could check the users credentials against the database ...
$row = $result->fetchRow();
if($row['code'] != '') {
$this->setCustomerData('AUTHENTICATE', True);
} else {
$this->setCustomerData('AUTHENTICATE', False);
}
// We can disconnect here if we access $db as a reference ($db =& ...)
$recordSet->Close()
$db->Close();
}[/codes]
用过Struts的朋友一定不会感到陌生,同很相似的。尽管如此,PHPMVC还是有很多地方比Struts要差多了,首先view部分的标签就没有Struts的丰富,这个是一件非常痛苦的事。正当我要放弃的时候,我突然发现它还支持Smarty插件,这使我又开始对这个PHPMVC产生了很多的兴趣。因为之前也做过Smarty的项目,我想应该是比较容易上手的了。于是配制了一下。
[codes=xml]
className="SmartyPlugInDriver"
key="SMARTY_PLUGIN">
[/codes]
按照官方网站上的例子在Form里加入了:
[code]
function validate(&$mapping, &$request) {
// Access the Smarty PlugIn instance
// Note the reference "=&"
$plugInKey = 'SMARTY_PLUGIN';
$smarty =& $this->actionServer->getPlugIn($plugInKey);
if($smarty == NULL) {
echo 'No PlugIn found matching key: '.$plugInKey."
\n;
}
// Set some Smarty template variables
$smarty->assign("FirstName",array("John","Mary","James","Henry"));
$smarty->assign("LastName",array("Doe","Smith","Johnson","Case"));
return;
}
[/code]
可是不管怎么测试,Smarty都不工作,除非在后面加上:$smarty->display("test.tpl");
这时smarty模版才被解析了,可是新的问题又来了,这时出来了两个一模一样的内容,就是说test.tpl被smarty解析了一次显示出来了,同时又被PHPMVC又重复解析了一次,而且会出现模版解析的错误提示。
不知道是我自己没有配制好还是PHPMVC本身就存在问题,花了两天的时间也没能参透其中的奥秘。网上关于PHPMVC的资料也的确是太少了点,特别是PHPMVC的Smarty插件更是没有。我也只是在官方网站上看到过一个配制PlugIn的例子是关于Smarty的,其次再也没有找到了。看到用这个框架的人的确不多,因此还是决定暂时先放弃PHPMVC了,看以后会不会有更新的版本和更全的资料出来了。
刚好其次就是对Smarty插件的支持经过几天对PHPMVC的研究
et_highlighter
发表评论
昵称
邮箱
网址
干净网络从你做起,切勿黏贴小广告