來歷
CorePHP是一個小小的不出名的phper,is me就是我,開發的。做過幾年前端,搞過5年php,接觸過yii ci thinkphp等多個框架後,實在忍受不了那些繁雜的條條框框,和那么高的學習成本,最終corephp誕生了。在這裡要感謝canphp,遇到這個框架後我非常喜歡,但是canphp更新太慢了,沒有模板語法,沒有模型、驗證,沒有基本的初始化。但我很喜歡因為簡單。曾經為canphp做了一些修改,添加模板語法,添加多表查詢但是無奈單騎將canphp收費了。
於是corephp誕生了,corephp永久開源,絕不收費。綜合了canphp, thinkphp,ci, yii等框架的優點,拋棄了thinkphp ,yii ,模型處理笨拙和學習成本太高的缺點。
簡介
靈活
php大牛中有一部分人不推薦使用框架,why?答案很簡單,因為框架不夠靈活,目錄結構都是固定好的,在有些項目中並不適合。比如有的程式前後台分離前後台都有各個功能塊,大多數程式是這樣的;有的程式按功能塊劃分每個功能塊都有前台和後台兩部分就像phpcms,很多框架是無法滿足這樣的要求。corephp就不會出現這樣尷尬的局面,模組的目錄部署完全可以自定義。讓你隨心所欲的開發。
安全
安全可不只是簡簡單單的sql注入,還有html層面的 跨站腳本攻擊(也稱為XSS)、網頁掛馬,這些你都不用耗費太多的精力,sql你完全可以忽略,因為在入庫前,corephp會自動進行數據處理。至於跨站腳本攻擊(也稱為XSS)、網頁掛馬也有專門的處理程式,你可以選擇在入庫前處理還是入庫後,隨便你,記住靈活喔。值得一提的是還有跨站請求偽造csrf,針對這種攻擊防範設定,只要在配置檔案中開啟令牌就可以了。
快速
自動載入功能,絕不把時間浪費在載入不必要的模組上。它具有強大的快取支持,支持html靜態快取、模板快取和二級局部快取,還支持Memcached記憶體快取,還有資料庫快取。只要你需要的這裡基本都有。本著靈活的原則,如果項目中有特殊需求,你還以設定自己的自動載入目錄。corephp絕對不會拘泥於形式。各種類庫你都可以添加刪除。用不到的就刪,需要了就放到自動載入目錄,再用到的地方直接使用,再也不用你自己去import include。
對比
這個因為比較多所以只舉幾個簡單的例子多表查詢
thinkphp的查詢時這樣的$table = array('think_user'=>'user','think_group'=>'group');
$Model->Table($table)->where('status>1')->select();
在進行多表查詢時表前綴失效了,所以你必須帶上表前綴,但是這樣,就會妨礙程式的可移植性,如果有一天你修改了數據表的前綴,你就要走到代碼里來重新修改代碼。
corephp就沒有這樣的顧慮你可以直接寫
$table = array('user','group');
$Model->table($table)->where('status>1')->select();
corephp會自動為表添加表前綴,這樣你在修改數據表前綴後,只要修改config配置檔案就可以了,不用跑到程式里去修改程式。
模型函式
thinkphp有M()和D()兩個函式,使用時需要根據情況進行選擇。M('user')會初始化模型,但不會載入自定義模型;D('user')你需要有user模型,沒有就需要使用M('user')
corephp只有一個model()函式,使用時會自動判斷是都存在模型檔案,存在則自動載入,如果有對應表,則自動進行表選擇。
model()沒有參數時只創建資料庫連線,model('user')自動檢測資料庫是否存在user表有則初始化表,並檢測是否存在user模型類,有則自動載入。
關於yii就不說了,yii更加複雜,一樣的功能我們當然選擇最簡單有效的方式。
模板語法
mvc中的v,thinkphp的模板語法我不多說了,真的很奇葩,我始終沒明白當時thinkphp為什麼要用這么複雜的語法,也許是受了前期smarty的影響吧。yii推薦使用原生,但是對於大多數做前端的兄弟來說無疑是個噩耗。寫程式的兄弟只能兼著這樣的工作了,畢竟前端不懂只能由你承擔。看看corephp的語法
{if $name==1}
這裡就是你的html
{/if}
循環
{loop $list $one}
{/loop}
函式
{date('Y-m-d',time())}
簡單的不得了,相信一個正常人完全可以在5分鐘內學會使用
當然使用原生語法也是可以的。想怎么用就怎么用
自誇一下,學習簡單資料充分,corephp就是phper的福音啊,堪稱最好用的php框架