无线递归用到的地方还是蛮多的,如果是我们itbasic上的话,那就是部门之间的关系,支撑体系下面有战略中心,战略中心下面有数据部,如果设计数据表维持这之间的关系,还有bbs,如何维护评论之间的关系(其实像laravel的论坛,他的评论关系都是从上往下一条线的,只是在评论的开头有@人的标志,我们的论坛是分为1级评论和多级,除了1级之外的评论都是在1级评论的后面按照1条线排列,没有显示主从关系),当我们需要获取这个评论的顶级的时候,我们就需要用到无线递归的知识。
跨域
跨域这个问题其实前端很容易碰到,为什么呢?因为前端一直用浏览器啊,浏览器可以看做一个http客户端,前端和http打交道主要用的就是这个客户端,但如果后端和http打交道,一般只能使用curl这类工具,又因为浏览器的同源策略才产生了跨域,换句话说跨域的时候,后端对前端的数据进行了处理,并返回了对应的数据,但是浏览器检测到了跨域,所以把数据屏蔽了,这才产生了跨域,所以前端相比后端会更容易碰到跨域问题。那前端就一定会碰到跨域问题吗,并不是这样。比如之前我在做itbasic的时候一直没有碰到这个问题,那是为什么呢?我的前端脚本和后端api服务都在80这个端口下,也就是说域是一直一样的,所以不会产生,但在当下,前后端分离,很多时候,前后端在不同的web服务下,比如我们那个bbs,前端静态页面由apache提供,端口8080,后端api是swoole提供,端口56735,这样前端肯定就遇到跨域问题啦。
框架学习1
对于框架源码的学习,可以帮助我们以后快速学习一个框架的使用,虽然同样的效果同样可以使用多学习几个框架,比如你把tp学完你学习laravel和yii发现很多时候都是一样的,但这仅限于你对框架的使用,增删改查的使用,当你想去修改一个框架的时候(不包括把框架中常量提取出来放在一个文件中,给框架增加一个validate等等这种情况)而是类似于把框架原来的隐式路由改成显式路由这种情况,如果你没有动手搭建过框架,你会不知所措。
我们这里对于框架的搭建还不是从头到尾写一个框架这种情况,composer(php的包管理工具,类似前端的npm),我们可以像拼接乐高积木那样搭建一个框架,那用什么来充当积木间的凹槽呢,我觉得命名空间可以充当凹槽之一。
cookie和session的思考
最近新开了一个bbs的项目,因为也有登录和退出,但问题来了,和大多数的公司内部项目一样,如果每个项目都有自己的登录名和密码,都得注册,每次去不同的项目用户都需要进行登录,估计用户会疯吧。其实这个问题很久之前就遇到过,当时是别的部门的项目希望通过我们这边保存的用户信息进行登录,老大的想法是写一个接口给他们使用,但是如果项目越来越多,每次写接口肯定不太合适,那位同事和我说过单点登录,趁着这次机会,自己也了解了下。
MIME TYPE的作用
其实本来不用单独写这篇文章的,可以放在http协议中,因为他本来就是关联这个http请求和返回信息中的content type,但其实用的还挺多,主要就是上传文件这块和php不借助插件而是通过输出html表格元素让页面按照excel来解析的方式生成excel。