第一次使用thinkphp踩得坑

作为一个软件工程大三狗,本着能混就混的原则学习,目前为止使用过的web开发框架有java的spring框架和php的thinkphp框架,其他的暂时没时间接触,毕竟天天混。

  先说第一个坑,试图将服务器的域名根目录绑定到框架的public文件夹,然后就发现真实部署项目时各种烦,比如css效果加载失败等,于是根据文档修改入口index.php,这个文档中有,注意,要将入口文件放到根目录。

  实际开发时,首先,需要引入html模板文件,这里不需要改成php后缀,完全保留即可,然后有些共有的可以进行分离,然后用include引入。由于thinkphp框架是mvc架构的,所以模块下应该有controller,model,view三个文件夹,分别存放对应的文件,引入模板后有一点需要注意,controller中的类名,与view中文件夹的名对应,而类中的方法与文件夹中的文件名对应,如果html中有form表单提交,action可以为空,此时提交的就是同名方法。

  在后台的管理员登录部分,一开始没想出来怎么让所有controller都能监控session,后来发现可以创建一个controller,然后加入_initialize方法,接着其他的需要监控session的controller去继承这个新的类就可以。

  在model的坑比较烦人,因为不清楚model查询数据的方法处理,所以尝试了很多次,最后发现,order方法根本不需要先使用get方法查找出来,不过order也不能对空值进行处理,所以想用order之前得进行一次空判断。

  在view没有什么坑,因为很多大多是$this->assign()方法去绑定值,所以没遇到太多麻烦,只是在引入模板时,静态文件需要放到public文件夹下的static文件夹,最好在每个模块加一个config文件进行配置__PUBLIC__,这样可以方便修改模板中的资源文件路径。

文  件上传有的部分需要注意,因为自动生成部分的路径分割为‘\’而linux好像不认这个,所以最好自己用‘/’替换掉。

  最后就是入口文件的隐藏,phpstudy这种本地开发环境和lnmp不一样,因为Apache和nginx不一样,Apache只需要修改入口文件同目录的.htaccess文件就好,而nginx则需要修改域名对应的配置文件才行。

  第一次开发踩的坑差不多都记录了。

你可能感兴趣的:(编程生涯,php)