近來用yii2開發乙個**系統,裡面用到有關rpc。考慮到yar在這方面效能比較突出,就試著自己搗鼓一下。
總的來說,實現起來並不複雜,具體步驟如下。
配置**環境
安裝yii2(高階版)
參考這裡不再贅述。
配置 nginx,設定兩個測試網域名稱。
server_name yii.test localhost;
在 backend/controllers/ 下,新建檔案 rpccontroller.php
<?php
namespace backend\controllers;
use yii;
use common\controllers\commoncontroller;
use yii\web\controller;
/** * rpc controller
*/class
rpccontroller
extends
commoncontroller
try catch (exception $e)
// return $this->render('index');
}/**
* 許可權認證
** @author zhiqiang guo
* @return void
* @throws exception
* @access private
*/private function auth($param)
//驗證ip
return
false;
}//有效時間
if ((time() - $param['time']) > $this->activetime)
//驗證密碼
if ($param['password'] !== $this->password)
if(empty($param['class']))
return
true;
}/**
* 解密
** @author zhiqiang guo
* @return void
* @throws exception
* @access private
*/private function rpcdecode($str)
return ;
}}
在 common/ 新建目錄 rpc,在 common/rpc/新建檔案 yarapi.php
<?php
namespace common\rpc;
/** * yar rpc client
* *@author 郭志強
*@return void
*@date: 2017-06-28
* */
class yarapi
"); }
/*** 加密
**@author zhiqiang guo
*@return void
*@throws exception
*@access private
*/private function rpcencode ( array $data)
}
修改檔案 backend/config/main.php
'urlmanager' => [
'enableprettyurl' => true, //美化url==ture
'enablestrictparsing' => false, //不啟用嚴格解析
'showscriptname' => false, //隱藏index.php
'rules' => [
'//' => '/',
],],
在目錄 backend/models/,新建 per.php
<?php
/** * $author: zhiqiang guo
* $id: per
* $date 2017/6/29
*/namespace backend\models;
use yii;
use yii\db;
use yii\base\model;
use yii\db\activerecord;
use yii\filters\verbfilter;
use yii\filters\accesscontrol;
use common\models\loginform;
/** * 許可權表的model類
* * @category custom
* @package custom_common
* @author name
*/class
perextends
activerecord
/*** 返回乙個你要查詢的表名
** @author name
* @return void
* @throws exception
* @access public
*/public static function tablename()
/*** 查詢許可權的所有資料
** @author name
* @return void
* @throws exception
* @access public
*/public function selall()
}
在目錄 backend/controllers/, 新建 testcontroller.php
<?php
namespace
backend\controllers;
useyii;
usecommon\controllers\commoncontroller;
useyii\web\controller;
usecommon\rpc\yarapi;
/** * 測試
* *@author zhiqiang guo
*@date 2017-07-02
*/class
testcontroller
extends
commoncontroller
}
執行 正確的話,會有資料輸出。
第一,要正確配置urlmanager,配置不正確,是無法實現rpc的。
第二,關閉csft ,這是乙個坑。關閉整個controller的csft方法是,在控制器內加上
/**
* 關閉csft
*@var string
*@access public
*/public $enablecsrfvalidation = false;
2 整合管理
相互競爭的目標 範圍 進度 成本 質量。多快好省。技術與管理工作間的衝突 領導與員工間相互不爽。所需要的不同技術專業之間 不同的技術。專案管理各知識領域之間 要平衡不同的領域花費的時間 成本。三邊四沒六拍 三邊 邊走,邊看,邊抱怨 四沒 開始時,沒問題 過程中,沒關係 失敗時,沒辦法 總結時,沒資源...
yii2實現彈框
1.首先引入命名空間 use yii bootstrap modal useyii helpers url echo html a 來乙個彈框 id create data toggle modal data target create modal 關聯下面model的id屬性 class btn ...
yii2購物車實現
1.商品列表中點選加入購物車,則跳轉到購物車列表,效果如圖所示 檢視 goods list.php中。如下 info goods id 控制器goodscontroller.php中,開啟session.use yii web session session new session session ...