ThinkPHP入门心得

3月底,我收到了心仪公司的实习通知,4月1号正式进入公司开始工作.

之前我自己一直在自学PHP,因为之前接受过JAVA培训,所以学习起PHP来还算容易,而且在学习期间自己租了空间边学边做了一个自己感兴趣的小站,从页面结构、样式到程序实现都是自己用Editplus一行一行写出来的,虽说技术含量很低,但自己也动了不少脑子,在网上查了不少东西。第一个版本完全就是面向过程的混合式页面,之后自学了Smarty模板,实现了表现层和逻辑层的分离,很有成就感。

公司用的是ThinkPHP框架,刚到那就塞给我一个任务---EDM,但是时间没有限制太紧,给了我很多时间去接触公司用到的工具。老大让我看ThinkPHP快速入门,起初的两天一直是云里雾里,感觉一点都看不懂,现在知道,是我当时忽略了一个重要的东西---MVC,这个框架如果用MVC的思想去看很快就可以看明白,之后几天边看入门边看公司代码,终于在一个星期内我把整个框架的运行模式和结构搞懂了,剩下的就只是应用了。

以下是我对ThinkPHP的理解:

1.目录结构中的Action就是MVC中的Control层;Model就是MVC中的Model层,Tpl即MVC中的View层;

2.ThinkPHP的Model层是我见过最强大的Model层,用过Java的Hibernate,这个还需要对数据库表进行配置,感觉步骤很繁琐,但是ThinkPHP的Model层只需要起一个与数据库表同名的Model类就可以实现ORM,甚至根本不需要建Model类就可以用框架的M('表名')方法实现ORM,目前感觉很方便;

3.如果要添加一个新的模块或功能,步骤很简单:(1)用到了哪个数据库表,建立相应的Model类,如需要可在Model类中添加自定义方法;(2)建新的Action类即新模块,在Action类中新建方法,即功能;(3)如需页面,在Tpl中按照Action名称和方法名为模板命名即可;这样一个基本的模块就done了;

4.经过老大的指导,告诉我Model层中是不应该处理任何业务的(哪怕一个简单的运算),Model层中应该对业务是一无所知的,它只进行数据库操作,但是一些业务放在Action中也不合适,所以这个框架缺少一个中间层,这样就可以使框架分工更加清晰,添加功能和修改代码效率更高,错误更少。

希望日后会对这个框架有更深刻的理解。