各个框架的区别:
yii2:
优点:gii蛮不错的,简化了开发流程,可以生成绝大数的代码,开发后台等效率还是蛮高的Yii采用严格的OOP编写,
缺点:前后端完全的分离的趋势下,yii2前后端的耦合的还是有些重了
laravel:
优点:优雅,框架结构组织清晰(抽象了中间件,任务,服务等模块),提供的artisan开发工具开发效率高,社区活跃完善,并且提供了简化的轻量级框架lumen,路由比较灵活能快速开发出功能,自带各种方便的服务,比如数据验证、队列、缓存、数据迁移、测试、artisan命令行等等,还有强大的 ORM 。
缺点:貌似代码有些过于优雅丧失了一些性能
thinkphp3.2
优点:简单明了方便快捷,上手快
缺点:缺少面向对象的设计,框架社区相关的辅助工具少
thinkphp5
TP借鉴了Java思想,部署简单只需要一个入口文件,一起搞定,简单高效。中文文档齐全,入门超级简单。自带模板引擎,具有独特的数据验证和自动填充功能,框架更新速度比较速度。
优点:这个框架易使用易学可以支持比较大的项目开发易扩展全中文文档总的来说这款框架适合非常适合国人使用性能上比CI还要强一些
缺点:配置对有些人来说有些复杂(其实是因为没有认真的读过其框架源码)文档有些滞后有些组件未有文档说明。
斐波那契
PHP底层基本特性,引擎
Php是弱类型语言,支持多线程模式,
PHP依托Zend引擎+ZendExtensions扩展+SAPI(隔绝WEB Server和PHP)隔绝层实现了标准架构设计的基本要求。
php数据结构
⑴集合结构。该结构的数据元素间的关系是“属于同一个集合”。⑵线性结构。该结构的数据元素之间存在着一对一的关系。⑶树型结构。该结构的数据元素之间存在着一对多的关系。⑷图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结构。
Redis
redis不易过大,会宕机,恢复比较慢
redis: 512m
memcache 2m
empty 0 true空字符串 true
is_null l都是false
负载均衡轮询
设置:upstream
代理地址:proxy_pass
Header:限制http状态 或者跳转
Sphinx,斯芬克斯,,不维护了用迅搜
增量索引,把新的加入文件中几个小时同步一次
主索引,凌晨同步把所有东西都同步
微信
Openid唯一用户标识。
Access_token
Code
第三方登录
Session认证机制/session工作原理
什么时候产生sesionid?服务端Session_start通过响应头setcookie 给浏览器,通过cookie请求头,把sessionid带到服务器 作用域,在本域名下。
接口安全验证:
[if !supportLists]1、[endif]加密:一般把加密放文件里,直接调文件。
[if !supportLists]a) [endif]防止别人看到
[if !supportLists]b) [endif]对称加密设计到秘钥丢失
[if !supportLists]c) [endif]非对称加密 一个公钥和私钥是一对一。秘钥长度是1025的时候只能加密117个字符
[if !supportLists]d) [endif]php自带的类库 mymcrypt 7.0后被禁用了
[if !supportLists]2、[endif]签名:防止报文被篡改。在客户端生成MD5只。服务端。也Md5 不一样了就说明被修改了
[if !supportLists]3、[endif]鉴权:整个系统是面向服务,很少用
[if !supportLists]4、[endif]防刷:生成一个Key一分钟的有效期 每次访问的时候+1 可以通过nginx限制
Redis集群
一般怎么管理:自己写中间件
一般用成熟的中间件:Redis Sentinel
mysql存储过程
相当自己写一个函数,
自己定义一个过程,通过一个关键字,call触发器名字 和关键字
触发器自动调用
Resful是设计风格 资源抽象。系统里是否有用户
慢日志
配置:修改的话是用一个变量设置,只对当前回话有效slow_long跟一个时间,sql两秒就存里。
slow_query_log :是否开启慢查询日志
查询
git推送到远程版本库回滚
远程服务器回滚Reset,每个版本都有id 回滚到相应id
值传递和值引用:
$a的空间100
$$b的话$a的空间会变
如果$a=$b的话 $b也会开辟一个空间
团队开发,敏捷开发,每天写笔记,下班之前要告诉上级做到哪里。基本上每周开一次会,分小组、小组组长、