/**
* 下午一点,终于开始了ThinkPHP3.2的官方手册。这里来说说感慨。
*/
12点半,刚才交大理工蹭完饭回来。昨晚妹子的那个拖拽上传始终萦绕在我心头,XHR异步上传为什么还要Canvas?这个文件用了AJAX那还算是个前端页面吗?一个布满纯JavaScript的页面我居然连代码都看不懂!
我存起这个文件对着电脑开始了form,enctype,file,$_FILES,copy,move_uploaded_file,仅仅是个上传,感觉自己做得也很low。突然想起我建立了一个所谓的极客群,自己却水平这么low,心里很不是滋味。于是打开ThinkPHP官网,打算听学长的直接上手TP框架。
下载的TP5.0.2完整版和5.0.3核心版,解压后发现文件目录和官方教程不太像,而且网上太多TP3.2的教程,又考虑到基于TP的zswin1.5是用的TP3.2框架,郭佳栋暑假好像说他们公司用的TP3.1,纠结要不要升级3.2这个问题。于是我果断下载了3.2.3完整版,解压出来。
刚接触这东西我胡乱挣扎了近一个小时,总是纠结于哪些文件夹是不需要的(因为官网的phpwind,wordpress,CodeIgniter解压后都只需要一个文件,其他不是说明就是案例)。想起高学长说起文档多好入手,我立刻上git下载官方的chm和pdf文档(ThinkPHP官网也有,担心更新不及时)回忆一下CodeIgniter框架,我先根据官方文档了解了文件目录结构(这也是想起了06届老学长几个月前的提醒),保留单一入口文件index.php,ThinkPHP模块,Application模块,Public模块和重定向文件.htaccess,另一个composer.json记录了ThinkPHP3.2的一些信息,我担心这东西有其他用处,暂时还没删除。(因为之前了解到一个叫做composer依赖管理工具,我担心和这个有点关系)
下午四点左右,我才大概过了一遍目录结构,其中配置部分还是不太了解,目录只在/ThinkPHP/Conf/convention.php内置了一个惯例配置文件,其他几种要么是空文件,要么是起临时作用绑定全局变量的,这个部分不太熟悉。
多次尝试我在这个时候理解了入口文件应该写啥了,可惜TP的配置参数感觉无穷无尽,我根本记不住。比如开发时关闭Runtime缓存,打开TP自带的Debug,绑定后台入口Admin到入口文件等等。(这里问一句:企业里项目的开发,一般后台是用子目录www.AAA.com/admin.php,还是解析一个二级域名admin.AAA.com到同级根目录呢,我认为后者的安全性更高)
下午五点左右我开始觉得得心应手了。刚开始的两三个小时真的是折磨,好几次怀疑高学长说ThinkPHP好入门这句话,庄子暑假都说TP框架比CI难,还麻烦。忍过了这几个小时,感觉前途一片光明,心情大好。虽然现在TP好多东西还在看,什么C方法,M方法,I方法,写TP的也是个奇葩。至于命名规范,TP是支持PSR4的,类和其他方面也有PSR2和PSR3,和已经被淘汰的PSR0写法也差不了多少,类名/函数名/变量名和严格的JAVA语法几乎一致。但是读取配置部分,TP并没有限制配置参数的大小写,官方建议大写,并且附上一句话:“无论大小写定义都会转换成小写”,这我就郁闷了,为了代码的优化应该建议使用小写避免转换才对把?
配置部分继续看下去,继续尝试,数据库配置没看到PDO,默认好像是MySQLi。而且,暑假学习PHP就感觉PHP把C语言的数组发挥的淋漓尽致,ThinkPHP3.2更让我坚定了自己的想法。我在思考TP在控制器种传递两个变量到视图时候,会怎么做?群里两个朋友都异口同声告诉我转换为数组。我认为这并不是很好的做法,尽管数组可以用键值对的方式输出任意多的变量,但是C语言告诉我,同类事物才会用数组存储。我一个 time,可能是2个字节的int型(时间戳),也可能是4或者8个字节;但是其他一些变量可以是 name, resource;碰到加个 file本来就是二维数组的变量就更加蛋疼(有点像数据表列的冗余,需要大表拆分处理),难道我要写n行$this->assign()吗?我无法得到答案,只能暂时认同了他们的说法,认为ThinkPHP也把数组作为了重点。
官方文档的学习路线是这样的:基础-配置-架构-路由-控制器-模型-视图-模板-调试-缓存-安全-拓展-部署-专题-附录。我本想今晚通宵看完文档,明后天跟着极客,慕课和PHP100的实战项目走的,腾讯云和TP官方还有相应的上线案例,git的开源项目,已经部署的zswin1.5后台TP模板。现在想想还是多花两天过第一遍文档把,CI的路由类我暑假没好好看,MVC的开发我受到庄子的影响没严格把业务逻辑层分开,暑假的CI项目我也没好好完成;TP的模板技术对我而言就是新知识,因为此前我也没用过Smarty模板;GD库的操作我也只是稍微了解了一下;缓存知识暑假也几乎没讲,只稍微涉及了一下sesession用法,甚至客户端cookie也没接触,更别提memcache,Redis和Mongo这种高性能内存数据库了。
最近Server2016的无线网络还是不能使用,听说Server2012之后默认服务器管理器不安装LAN无线驱动,我更新后还是不行;Server2016用win10激活工具居然无法激活也是个问题;win10能正常安装的软件到了Server2016上却无法安装也是个问题!虽然我不得不说Server2016比Server2012好用很多,界面上又比Server2003和Server2008清新爽快,但是微软系统这服务器管理器就不能卸载去吗,真恶心!
至于CentOS7,网易镜像站最新版本还是1511,min版本各种缺损,网络配置必须在命令行完成,ifconfig无法使用,yum无法正常升级,DNS服务器配置目录辣么多个,我技术不行,能简单点吗??换上4G完整版的CentOS7,Gnome桌面环境加开发者工具,安装前桥接宿主机,发现ping正常,网页无法打开!这绝绝逼又是DNS解析问题,妈蛋,搞了两天都失败。想尝试windows10新技术Hyper-V,又告诉我不能和VM兼容,安装CentOS还需要往镜像修改添加依赖文件,这这这。。。。我还是老老实实拍黄片去吧。
2016年12月4日19:29:10