相信用過thinkphp的用戶都知道thinkphp的模型可以完成很多輔助功能,比如自動驗證、自動完成等,今天在開發中遇到自動完成中需要獲取session值然後自動賦值的功能,具體看代碼;
class ArticlelModel extends Model { protected $_auto = array ( array('addtime','time',1,'function'), array('username','getName',1,'callback') ); //這個函數獲取session裡的name值 protected function getName(){ return $_SESSION["name"]; } }
這裡需要注意最後一個參數function和callback的區別;
function:使用函數,會自動去Common/common.php去尋找對應的函數;
callback:使用在當前模型中定義的回調方法
<?phpclass CartTool { private static $ins = null; private $items = array(); final protected function __construct() { } final protected function __clone() { } // 獲取實例 protected static function getIns() { if(!(self::$ins instanceof self)) { self::$ins = new self(); } return self::$ins; } // 把購物車的單例對象放到session裡 public static function getCart() { if(!isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self)) { $_SESSION['cart'] = self::getIns(); } return $_SESSION['cart']; } /* 添加商品 param int $id 商品主鍵 param string $name 商品名稱 param float $ 商品價格 param int $num 購物數量 */ public function addItem($id,$name,$price,$brand,$thumb,$num=1) { if($this->hasItem($id)) { // 如果該商品已經存在,則直接加其數量 $this->incNum($id,$num); return; } $item = array();$item['id'] = $id; $item['name'] = $name; $item['price'] = $price;$item['brand'] = $brand;$item['thumb'] = $thumb; $item['num'] = $num; $this->items[$id] = $item; return $this->items[$id]; } /* 修改購物車中的商品數量 param int $id 商品主鍵 param int $num 某個商品修改後的數量,即直接把某商品的數量改為$num */ public function modNum($id,$num=1) { if(!$this->hasItem($id)) { r......余下全文>>
1、用最少的代碼完成最多的功能
2、優秀的理念和創新的模式
3、擁有完整的MVC和全內置的實現
4、理想的性能和完善的功能
5、完善的中文文檔和在線手冊
6、完美支持不同的數據庫
7、擁有眾多企業級特性
8、擁有快速的BUG響應和修復能力
9、走過了三年的積累和細節的完善
10、擁有社區化的團隊和開源力量
11、擁有眾多的第三方的衍生開源項目
12、讓你能夠比其他的團隊更加突出(^_^ )
那麼ThinkPHP將會是你明智的選擇!ThinkPHP擁有很多優秀的特性,包括:
簡單易用的MVC模式
獨創的核心編譯和項目編譯機制
內置 XML模板引擎,支持標簽庫
富模型支持
CURD和操作高度自動化支持
豐富的查詢語言支持
目錄結構自動創建
分布式數據庫支持
多數據庫連接和切換支持
ActiveRecords模式和ROR特性
靈活簡單的項目配置
模型自動驗證和處理
靜態頁面生成和多元化緩存機制
豐富的數據庫及PDO支持
SEO和URL路由支持
AJAX支持
易擴展的系統基類庫
自動編碼轉換
組件和插件支持
基於角色的權限控制體系詳盡的開發指南和全中文注釋
望采納。