**YurunPHP**是宇潤兩年來研究PHP的成果,基于MVC動態分層架構,開發者可以根據需要自行擴充分層。其中參考許多了ASP.NET、ThinkPHP等平臺框架的開發思想。
宇潤使用YurunPHP框架開發過O2O平臺、門戶網站、企業應用,完全能夠勝任各類復雜任務。參與項目開發的人員也一致認為YurunPHP框架確實方便易用。
## 特色功能
> * **雙向路由:**解析、生成一步到位
> * **動態分層架構:**除了常見的Control、Model、View,開發者還可通過配置文件自定義分層
> * **多入口:**滿足各類開發者的需要
> * **API接口開發:**支持直接返回包括json、xml等格式的各類數據
> * **簡單ORM:**單表增刪改查不需要寫SQL語句,復雜ORM不如寫SQL更為便捷
> * **DB統一接口:**可以不改任何代碼,實現更換數據庫類型切換。目前支持MYSQL/MSSQL
> * **模版引擎:**方便不懂PHP的設計人員制作頁面模版
> * **插件機制:**支持在系統中埋下事件,以便開發插件擴展
> * **數據驗證:**不僅有數據驗證類,而且model支持自動驗證
> * **其它:**緩存、配置、數據庫、錯誤日志記錄、多語言支持、Session、Cookie、Request、Response
## 開源協議
YurunPHP**采用Apache Licence 2.0協議開源,可以放心用于商業用途**。
Apache Licence是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件)。
需要滿足的條件也和BSD類似:
需要給代碼的用戶一份Apache Licence
如果你修改了代碼,需要再被修改的文件中說明。
在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。
Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業產品發布/銷售。
## 常見問題
**1、為什么YurunPHP最低版本只支持PHP5.3,但沒有使用命名空間開發?**
首先,PHP5.3是PHP第一個支持命名空間的版本。同時,5.3也有許多其它特性。**
考慮到目前使用5.2的比較少了,并且為了以后升級的考慮,以后肯定還是有可能支持命名空間的。
使用PHP的命名空間確實能夠比以前更好實現一些功能,結構更加清晰。但是學習和開發效率大大降低,看著一堆反斜杠讓初學者無從下手。
同時,我也想吐槽一下PHP的命名空間用反斜杠,簡直反人類,太難看了!
- 序言
- 有些話想說
- 基礎入門
- 簡介
- 下載YurunPHP
- 運行環境
- 開發規范
- 目錄結構
- 模塊
- 控制器
- 項目配置
- 入口文件
- 項目目錄結構
- 配置文件
- 框架編譯
- 項目部署
- 控制器
- 創建控制器
- 加載模版顯示頁面
- AJAX返回數據
- 模型
- 創建模型
- 實例化模型
- 數據管理
- 連貫操作
- distinct
- field
- from
- where
- wherePk
- group
- having
- order
- limit
- join
- page
- headTotal/footTotal
- 連貫操作收尾方法
- select
- selectPage
- buildSQL
- selectValue
- selectBy
- getBy
- getByPk
- random
- inc
- dec
- add
- edit
- delete
- 合計函數
- save
- 執行SQL語句
- 創建數據并驗證
- 字段映射
- GET/POST/COOKIE/REQUEST
- Cookie
- Session
- 數據庫操作
- 配置文件
- 常用操作
- 查詢記錄
- 存儲過程
- 數據庫函數
- MSSQL
- 視圖
- 調用視圖
- 給視圖傳值
- 模版引擎
- 輸出
- 使用PHP代碼
- 模版標簽
- if
- switch
- for
- counter
- foreach
- include
- js/css/image
- url
- 模版常量替換
- 自定義控件
- 通用屬性用法
- 數據集綁定
- 下拉框(select)
- 單選框(radio)
- 單選框組(radiogroup)
- 選擇框(checkbox)
- 選擇框組(checkboxgroup)
- 表格(table)
- 文本框(textbox)
- 分頁條(pagebar)
- 數據驗證
- 驗證方法
- between
- betweenEqual
- empty_str
- not_empty_str
- regex
- length
- lengthChar
- mobile
- tel
- phone
- postcode
- url
- ip
- lt/gt/ltEqual/gtEqual
- equal/unequal
- in/notin
- idcard
- 路由
- 路由配置
- 自定義分層
- 緩存
- 文件緩存
- 配置
- PHP數組配置
- 過濾域名
- 日志
- 文件日志
- 事件&插件機制
- 框架事件列表
- 多語言支持
- 定時任務
- API接口開發