最近我在学习ZF,自己也在写个php4版的国内现在FleaPHP也比较火还有一些国外的的比如p4a,是写的PEAR的扩展
解决方案 »
- Fatal error: Call to undefined function curl_init() in D:\wamp\www\bj\qq.php on
- 正则置换问题
- 有个IF语句要加到PHP文件里,不知道加在哪有效,格式怎么写,高手帮忙下
- PHP文章相似度比较,通过similar_text()比较有点慢,可否有什么好效率?
- 如何知道如phpBB的论坛系统是否会和自己的站点冲突?
- php如何提交xml格式的数据请求
- 怎么用PUBLIC出错?
- ?小问题:关于php得到复选框的状态?
- 我要支持php,asp空间,哪有?(给前10位有效者加分)
- 动态传送300个数据,你行吗?
- 怎么样做站内短信提示页面?
- PHPChina(深圳)腾讯PHP培训班开始招生
2、使用“<?=$var?>”欠妥,因为这样的格式是可被关闭的
不知道如何写好一个框架。
什么是框架?
框架是应用程序的半成品,用户可以此为依托搭建自己的应用程序。
一个框架并不能覆盖所有的应用既然框架是应用程序的半成品,开发框架可以从成熟的应用项目中提取公共成分开始
你的model文件夹下的才是controller,而你的model并没有实现。
model是封装了数据库操作的业务逻辑,这并没有体现数据库的操作。还要提几点:
1.psff.php中 // 禁止访问构造函数 - protect construct function
但事实是设置成了public,看你index.php不设置public也是不行的。
除非你做成singletion的模式.
2.既然用php5,应该好好利用Exception,比你现在的echo 要强的多.
3.模板应该可以扩展,不是所有的人都喜欢直接在html页面嵌入<?php的,最少应该集成一种模板接口,比如smarty.
===============================================
这个我也举双手赞成!框架这个东西是老外先提出来的。20年前他们也没有框架。也是经过实践和时间的积累发现有一些东西是可以重用的,然后就有了模版。现在已经有很多牛人提出了很多的模式和框架。你何必自己去写呢?拿过来看一下直接用就好了。也许你代码量达到一定程度后自己也提出一种模式或框架呢~~~老外们很注意自由。所以他们所说的框架其实只是一种规范、一种统一的标准,只要你认为你的程序中某个代码块应该属于Model,View,Control里的那一个你就可以放进去嘛。第一次肯定不会尽如人意,不过多写几次,你就会本能的将最适合的代码块放入最适合的层去。到时候你就会发现你的分层和别人的分层大同小异。因为人的思想基本是一样的(天才和白痴除外)~~所以,放手去写吧!总会有收获的~~~~~~~~~~~
我不太明白你说的,尤其是M的功能
举个例子:
用户修改密码,输入新密码并点击提交之后,返回一个修改密码成功的页面,在这个过程中,MVC的三个部分都分别完成哪些工作呢?
------------------------
我现在正碰到这样一个问题,就是由于页面是由index.php读入然后输出的,尽管index.php是utf-8, 读入的页面也是utf-8, 并且声明了charset=utf-8, 但是浏览器就是不能正确识别。有谁知道如何解决这个问题吗?
*****************************/增加一个用户区域判断,不同区域的用户设定不同的编码。:)不管怎样,产品总是在不断的完善当中,
有能力与精力写一模板,精神上还是给予强烈UP,呵呵--纯属题外话。
最近也在学ZF,不过它的缺点是有点庞大,对于小规模系统开发来说有点小题大做。看到最近FleaPHP比较火,可能它就是因为它比较小比较灵活的缘故。
controller/目录下应该有
class user_controller{
function setPwd{
$m = new user_model();
$m->setPwd();
$v->set("msg","密码修改成功");
$v->display('setPwd_view.htm");
}
}
model目录下应该有
class user_model{
function setPwd($id,$pwd){
$sql = "update user set pwd=$pwd where id = $id";
$this->DB->query($sql);
return $this->DB->affetctedRows();
}
}view下应该有
setPwd_view.htm
<?php echo $msg?>----------------
以上我只是举个例子,至于各部分的细节可以加以讨论,比如
$v->set();$v->display这部分我在plite中把它加入了controller中,只是为了简化操作。--------------------------------------------------------------------------
个人觉得Exception也就是一个报错和控制流程的功能,如果在知道是何种错误的时候自己控制流程并用echo显示应该比较快吧?Exception的功能在于实现对代码中出现的异常进行统一处理,程序中并不负责处理这些异常,只是在适当的时候把他们throw出来,
如果有一天你发现你简单的echo 出来的信息并不够,需要增加的时候,
你可能要修改每个echo的部分,如果用Exception,那样你就可以修改较少的地方,
而且Exception有一个trace功能,让你知道程序文件的调用顺序,是哪个文件哪行代码出了问题。你这样简单的echo提供的信息毕竟太少了---------------------------------
其实我写这个框架是自己用的,而我又不太喜欢那些自定义的标签那就随便了,不过我觉得这个接口是可以保留的,万一你以后有这个需要的时候可以方便扩展-----------------------
以上纯属个人拙见,见笑了。
的确我的controller只是一个前端的控制器,并没有真正起到controller的作用。
再次感谢!
密码识别并修改属于model
而controller实现正确的解释用户的需求(修改密码)并将控制交由正确的model处理
model可以自行调用view完成输出,也可返回结果由controller调用view其实我建议你先放弃先入的MVC框框,不要为MVC而MVC。这并不排除你最终的产品就是MVC结构
你的主要精力应该放在协调功能化的对象上你有没有注意到,现在已经从面向对象(OOP)深入到面向局部(AOP)了
架构再先进如果功能差的话一样是失败。
我会注意的,不为MVC而MVC.
有点像就可以了
UP
在输出真实内容前加上下面这句:
header("Content-Type:text/html; charst=UTF-8");