1:nginx 配置文件
server{
listen 8012; //端口
set $HOME /home/xiaoju/webroot; //设置一个 $HOME的变量 值为 /home/xiaoju/webroot;
root $HOME/public; //定义项目根目录
index index.php index.html //默认访问文件名称
error_log /home/xiaoju/nginx/logs/esapi_public_error.log; //错误日志存放路径
access_log /home/xiaoju/nginx/logs/esapi_public_access.log;// 访问日志存放路径
location ~ /b2b/esapi {
rewrite ^/b2b/esapi/(.*) /$1 break; //匹配任何以/b2b/esapi开头的地址
proxy_pass http://$host:8095;
//请求转向backend定义的服务器列表,即反向代理,对应upstream负载均衡器。
}
~ 开头表示区分大小写的正则匹配;
~*开头表示不区分大小写的正则匹配;
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
location / {
try_files $uri $uri/ /publicindex.php?$args; //匹配所有请求
}
location ~ .*\.php?$ {
//匹配以php结尾的文件,如果非publicindex.php返回404
//? 匹配前面的子表达式0-1次
//.*匹配任何字符任意次
if ( $uri != /publicindex.php ){
return 404;
}
alias $HOME/application/esapi;//别名
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9009; //以TCP方式进行进程间通信的方式 可以跨网
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
//访问网站根目录下的php文件 如果没有配置这个配置项 nginx不会去访问网站根目录下的php文件
}
}
2:学习es_api代码:
//关于用户登录
base存放的是与登录相关的信息
登录 登录成功会写token
登出 登录失败会删除token
对于app部分登录部分的感受
1:app/v1/home/executeHook()检查用户的访问信息,通过Model_Member_Login检验登录是不是成功。
如果登录成功的话就会到,Model_Member_Login是被Server_Model_Member_Login服务的
Server_Model_Member_Login是被后台框架所服务的。
Config下的文件是大家可以共用的。
//每次登录的时候就会在客户存放一个token这样在每次登录的时候,和服务器上的token进行验证。
3:json
[{},{}] //表示的是一个数组中包含两个元素,分别用{}分割开
4:理解
//1、首先检测用户的信息,然后返回合法用户的的信息
//2、得到用户的旅游Id 如果判断不为空的话,如果为空的话就返回一个错误码
//3、在获得差旅信息以后,执行下面的获取差旅权限的的函数
//4、差旅权限分为城市用车权限和接送机用车权限
//5、接着就是去处理得到城市用车数组和接送机用车数组
//6、如何得到城市用车数组:需要对不同的字段做不同的处理
比如: limit 城市及限额 :需要数组 _cityLimit();来获取
一次类推。如果需要利用函数获得结果的key的话,就会调用指定的函数
//现在的问题就是库函数的具体功能还不是很清楚,有的函数功能说不上来。
_cityLimit() 函数的功能仅仅是为了获得用户城市用车需要返回的数组中的limit字段
:通过判断相等的话,返回一个数组
所以最后处理完的数据,还是需要将数组转化为json数据的,数组不合适进行跨网传输。
第二个字段:cross_city:是否可以跨城通过下面的方法来获取
Config_Requisition_Trip::crossCityContent
//通过类名就可以看到,是在/config/Requisition/trip.php 中的一个类 中的静态方法crossCityContent()方法。静态方法是可以用类名直接提取的,这个函数的功能是获取跨城市的相关内容
字段:available_car_type 表示的意思是可用车型
通过一下的函数实现_srvName() 然后调用配置文件中的
Config_Callcar::$car_level_name[];//得到具体的可用类型。$car_level_name是自己实现的一个数组,传入具体的key可以得倒具体的用车类型。
per_allowance //看单词是个人津贴的意思
//但是文档中给的是个人限额
//在中文描述和为变量起名的过程中要做到见文知义
//下面看个人限额是怎么获得的
//quotaContent 这是什么意思
//在trip.php中可以用Config中的内容
//Controller/public/apprve/v1/triprule.php 在这个类中继承了Controller_Base
//Config中的内容可以用到任何文件中,但是也应该有名称限制
//Model中的内容可以用service中
//普通文件可以用对应的Model中的内容
//Controller中
Controller_Public_Approve_V1_Triprule
Model_Approve_Trip
//自定义Controller的时候需要继承Controller_Base
//自定义Model的时候徐需要继承Mode_Base
Controller 中的内容可以用Model中的内容。但是名称和文件夹目录必须要对应
//Config中的内容可以到处用
//现在的问题就是每一个函数的作用,以及整个项目从登录到申请到审批-->审批中-->审批通过,然后就是查看审批内容,以及权限信息,取消申请,在审批没有通过之前都是可以进行取消申请的。
//我们要做的就是在别人提交一个申请以后,调用具体的文件夹下的文件,通过发送的token数据判断用户的身份,然后在去查询用户的信息,显示对应的用户信息。产生最后的结果。
5:基础知识:CI框架以及PHP基础知识
6:sublime 常用快捷键
sublime快捷键 shift+delete删除整行
sublime快捷键 ctrl+tab 切换内部各个页面
sublime快捷键 ctrl+d 快速选中一行
sublime快捷键 ctrl+d 快速选中一行
sublime快捷键 ctrl+d 快速选中一行
sublime快捷键 shift+ctrl+D快速复制一行
sublime快捷键 shift+ctrl+方向键快速移动一行
sublime快捷键 ctrl+Home/End 回到页面的首部或者返回到当前操作的位置
7:代码大全的学习:
//在软件构建的过程中存在着不确定性。
//人们习惯理解简单的东西,所以我们需要将复杂的问题简单化,
简单的问题之间相互依赖,我们就容易在一个时间段内专注于一个简单的问题中去。
//保持子程序的短小精湛可以帮组我们理解程序,从问题的领域着手,将问题抽象到一定的高度,而不是陷入到具体的代码怎样实现的问题上。对于我们理解问题有很大的帮助。
//我们需要写出来自己可以理解的文章,并且是可以被别人理解的文章。
//高代价、低效率的设计源于三个方面:
1、用复杂的方法解决简单的问题
2、用简单但是错误的方法解决复杂的问题
3、用不恰当的方法解决复杂问题。
//处理问题的两个方法:
将复杂度降到最低
不要让偶然的复杂度,无畏地快速增长。
//在软件开发过程中最重要的是复杂度问题,最最重要的问题是降低复杂度
//高质量的设计特征
1、最小的复杂度
2、易于维护
3、松散耦合:
4、可扩展性 Models Controller 。。
5、可重用性:类似于Tools
6、高扇入:要求用大量的类利用某个类,这样就是用了大量的底层函数
7、低扇出:让一个类少使用其他类。
8、可移植性
9、精简性:去掉多余的代码。
10、层次性:
//使用标准化的技术开发
1、一个系统首先被分解为若干个子系统
2、每个子系统中包含多个类
3、每个类中包含若干子程序
4、子程序的内部也需要进行设计。
//1、将系统分解为不同的子系统,有一个非常重要的因素需要考虑,子系统之间应该如何通行的问题。
//2、应该做的原则就是限制每个子系统的之间的通信来让每个子系统更有意义的存在
8:写的多了全是回忆。。。。