从Java转PHP的编程感受

学Java出身的,学得也很平常,没什么亮点。从一开始的servlet 到 struts2 到springMvc 从jdbc 到ibatis mybatis。基本上增删改查跑一边吧。

如今参加工作了,写了6个月的PHP。今天突然之间有点感悟,记录一下。

因为公司的原因,项目总是再换,总是没做完,我总是坐着很多相同的事情。所以有时候,我觉得很累。项目经理会说,你有了前面的基础应该就很快了吧。(他是非专业的)。让我更加累。一是进度赶,然后是身心俱疲,人的重复不像for循环。我们很快就厌烦了。而for它是没有感知能力的。

就在这样的一个环境下,我可能有意无意的再审视自己的代码。今天我比较了一下和以前写Java的思路,我发现,我今天写着的代码是最开始我写Java的servlet 业务层 数据层 全部都是写在一块的。因为有了JSP 所以当初视图却还是分开的,现在写的PHP 视图同样也还是分开了。

在我现在的写法中经常看见类似这样的代码。《框架doitphp》

    //药品
    public function medComAction(){
        $this->display('medicines/medcom');
    }
    //单个问答页面
    public function pushAction(){
        $this->display('medicines/push');
    }
    //系统药品库
    public function medSysAction(){
        // 系统药品库
        $modelForSysproduct = $this->model('Sysproduct');
        $resForSysproduct = $modelForSysproduct->order('id desc')->findAll();
        var_dump($resForSysproduct);
        $this->display('medicines/medsys');
    }

没有写任何东西的话,这其实就是对请求做重定向处理,类似Java的action,action只负责跳转,二具体在跳转之前要做什么事情,这输入业务层。

这段代码的第三个方法,我在调用数据,意思,我的数据层读写,也写在了这里。然后在Java中这应该是放在dao层的。

说道dao,这里就要提起PHP 一些框架的model这个类。他是数据数据层的一个基类。封装了基础的方法。

然而一般的话,浅显点儿理解。一个表,会对应一个model. 在想想Java Java中一个对象,对应一个数据层的xml配置文件。一对一。

这里我不知道这么说可不可以,有时候面向对象编程,一定意义上可以说是面向数据库编程。

Java 中一个对象的 dao层 会封装这个对象,对应操作数据库的所有方法。所以同理,PHP这里的model其实也就充当着这个角色。

所以框架的设计者一开始是没有错的。然后我又看了下框架的目录结构图

 

在application目录,我一般没用到过。我想可不可以作为实体bean的目录。只要想就可以的。

posted @ 2014-09-29 14:23  鱼尾纹  阅读(7007)  评论(0编辑  收藏  举报