从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的目录。只要想就可以的。

时间: 2024-10-21 13:02:25

从Java转PHP的编程感受的相关文章

20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结

20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运算 2 支持多运算符运算 3 支持分数运算,支持真分数运算 3 统计正确率 扩展需求: 设计思路 这是一个需要支持复杂运算的程序,不同于简单的单运算符的四则运算,需要设计多个类来实现运算,比如加减乘除以及平方的运算. nml图(部分) 代码进度 整数计算类 public class IntNumber { p

读懂Java中的Socket编程(转)

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序. 餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对这个

Java学习之网络编程实例

转自:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html 多谢分享 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码

Java TCP/UDP socket 编程流程总结

最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就像通过一个文件的file handler就可以都写数据到存储设备上一样.根据TCP协议和UDP协议的不同,在网络编程方面就有面向两个协议的不同socket,一个是面向字节流的一个是面向报文的. 对socket的本身组成倒是比较好理解.既然是应用通过socket通信,肯定就有一个服务器端和一个客户端.

java第四章编程题(初学篇)

代码: 1 /* 2 test.java 3 */ 4 package test; 5 public class test { 6 public static void main(String args[] ) 7 { 8 CPU ccp= new CPU(); 9 HardDisk hhd=new HardDisk(); 10 PC pc =new PC(); 11 ccp.setSpeed(2200); 12 hhd.setAmount(200); 13 pc.setCPU(ccp); 14

java和c++混合编程尝试

下载源代码 现在的程序员,不再像以前一样,掌握一种编程语言就可以混得有模有样了,现实的情况是,真实的项目中,通常是涉及多种编程语言,举几个简单的例子,一个软件为了快速开发,可能是使用 Delphi 或 VB 作为界面开发首选语言,底层的指令或核心算法,会使用 C/C++ 处理,涉及数据处理的时候,为了安全和快速开发,会使用 Javascript 或 Python 等脚本语言实现数据分析处理.因此,开发者应该学习或掌握语言混合编程. C++ 和 Java 是主流的两种编程语言,但是现在整个网上对实

读懂Java中的Socket编程

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序. 餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对这个

JAVA笔记26-网络编程(不等于网站编程)

一.网络基础(TCP/IP详解) 1.IP协议(Internet Protocol):网络层,支持网间数据报通信.无连接数据报传送,数据报路由选择和差错控制. IPv4 32位(4字节),IPv6 128位(16字节).P ping ICMP协议 2.TCP协议.UDP协议 (1)TCP(transmission control protocol 打电话):专门设计用于在不可靠的因特网上提供可靠的.端到端的字节流通信的协议.它是一种面向连接的协议.有三次握手.慢 (2)UDP(user data

阿里Java开发手册之编程规约

阿里Java开发手册之编程规约 对于程序员来说,编程规范可以养成良好的编程习惯,提高代码质量,降低沟通成本.就在2月9号,阿里出了一份Java开发手册(正式版),分为编程规约,异常日志,MySQL规约,工程规约,安全规约五个章节.这里我根据阿里的编程规约,重点记录(黑色加粗部分)自己还未做好的一些规范,同时方便查阅. ++阿里Java开发手册下载地址++ 编程规约 一.命名规约 [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name