腾讯开放平台开发之感

来源:互联网 发布:大数据未来前景 编辑:程序博客网 时间:2024/05/17 23:33

   QQ空间的应用已经写完了,这几天一直在为上线的事情做准备,各种资质证明,素材提交,CEE ,CDB申请。今天早上终于在CDB上建好了自己的数据库。吐槽一下,在MC中不对能数据库的表执行增删改操作,不知道是出于什么考虑,这样给开发者带来很多不便。接着通过官方给的FTP软件把项目部署到了服务器上。结果问题就此出现了:

   项目在本地服务器一切正常,但是部署到了腾讯的服务器上就莫名其妙不能执行PHP代码,再吐槽一下,部署到服务器上再调试项目太麻烦了,先要在本地修改了文件,然后在通过FTP覆盖掉原来的文件。然后要重新部署,重新发布,然后才可以看到调试结果,一个小调试就得3分钟左右(前提是你不是用毛线上网了。。),这平时按一下ctrl+f5就搞定我的很不习惯(当时由于写JSP的时候,每次调试需要在tomcat上重新部署项目,所以后来果断选择了PHP。。)。

   回归正题,这个项目我自己写了一个小框架,其中有用smarty分离页面和后台代码。可是部署到了腾讯服务器上之后,smarty就失效了,无法执行页面跳转。联系客服,说了半天也没有解决,身边的同学告诉我腾讯的这个服务器不支持smarty,让我很揪心。仔细想了一下,会不会是权限的问题?我觉得这是唯一一个能说得过去的解释了。接着问客服,服务器上的文件夹开发者是不是没有写权,后来他告诉我,webroot下一切文件夹都没有写权,唯一一个有写权的文件夹是logs,这是个可选文件夹,用来存放应用日志。

  到目前为止,我感觉应该是找到问题所在了,smarty中有两个比较重要的目录,一个是templates_dir也就是模版目录,另一个是templates_c也就是编译目录。smarty是编译执行的,也就是说当在执行$this->display('*****.tpl');的时候,它会重新生成一个.php的文件,这个一个将你赋值的变量替换过的页面文件,然后direct到这个文件,如果你不显示指定路径,那么就会在同级templates_c文件夹下。你可以打开这些个名字很古怪的PHP文件,然后你瞬间就理解smarty代码分离的基本原理了。

  好了,说了这么多,问题也能立马解决了,在腾讯的服务器上建一个文件夹叫logs,注意按照要求要个你的项目目录webroot同级,然后把smarty的编译目录指向到logs:
             $this->setCompileDir("../logs/templates_c/");

  这下,smarty编译生成的所有.php文件都会放在这个文件下。

  总结一下,其实这是一个很小的问题,却害的我差点放弃这个项目。“没有解决不了的问题,只有不会转弯的脑子” - -。

  突然发现自己已经大四了,想想过去的一段时间,自己真能瞎闹腾,wp7上做游戏,metro上开发应用,QQ空间做应用,从来没有静下心来好好考虑自己的未来。各种校招开始了,v_JULY_v博客中有一系列关于算方法的题目和讲解很不错http://blog.csdn.net/v_july_v/article/details/6543438,再一次翻开了算法导论,打开了devc++。微软明晚会有校招会,决定去试一下,最近好好准备一下,做点有挑战的事情,如果不行就苦逼地去读研了。祝愿各位一起与代码并肩作战的同胞今年找到好工作,你的代码也可以改变世界~~