React Flux Redux思想
╔═════════╗       ╔════════╗       ╔═════════════════╗
  ║ Actions ║──────>║ Stores ║──────>║ View Components ║
  ╚═════════╝       ╚════════╝       ╚═════════════════╝
   ^                                      │
   └──────────────────────────────────────┘
1.Flux:大致的过程是这样的,View层不能直接对state进行操作,而需要依赖Actions派发指令来告知Store修改状态,Store接收Actions指令后发生相应的改变,View层同时跟着Store的变化而变化。
举个例子:A组件要使B组件发生变化。首先,A组件需要执行一个Action,告知绑定B组件的Store发生变化,Store接收到派发的指令后改变,那相应的B组件的视图也就发生了改变。假如C,D,E,F组件绑定了和B组件相同的Store,那么C,D,E,F也会跟着变化。
2.Redux:
(1)reducer 实际上就是一个函数:(previousState, action) => newState。用来根据指定 action 来更新 state 。通过 combineReducers(reducers) 可以把多个 reducer 合并成一个 root reducer。
php curl get post方法
一、GET
$res=file_get_contents('http://www.vocp.cn')
二、POST
1.初始化
$ch=curl_init();
2.设置变量
//curl_setopt($ch,XXX)
curl_setopt($ch, CURLOPT_URL, "http://www.vocp.cn"); //指定url地址
curl_setopt($ch,CURLOPT_POST,1); //指定post方法,不指定就是get方法
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//直接返回的内容作为变量储存,而不是直接输出
curl_setopt($ch,CURLOPT_POSTFIELDS,array('name'=>'Lilei','sex'=>'man')) //参数
3.执行获取结果
$res=curl_exec($ch)
4.释放句柄
curl_close($ch)
php关于API版本控制方案(Larvel)
利用头信息中的 HTTP_ACCEPT 控制版本号,再通过版本号来控制命名空间。HTTP_ACCEPT 添加版本号
version=1.0
在项目文件的laravelvendorlaravelframeworksrcIlluminateRoutingRouter.php 添加方法
//定义版本号与命名空间
protected  $NameSpaceMap=array(
            'v1.0'=>'v1',
            'v2.0'=>'v2',
            'v3.0'=>'v3',
);
public function getNameSpace()
{
    $str=$_SERVER['HTTP_ACCEPT'];
    $str=str_replace(';','&',$str);
    parse_str($str,$array);
    $version=$array['version'];
    if(in_array($version,$this->NameSpaceMap)){
        return $this->NameSpaceMap[$version];;
    }
    reset($this->NameSpaceMap);
    return current($this->NameSpaceMap);
}然后路由里面定义命名空间
Route::group(['namespace'=>Route::getNameSpace()],function(){
   ...
});
控制层目录这样放
最后的效果(ps:懒得写控制器了,命名空间对就好)
国外laravel api 案例 https://github.com/dingo/api