**最新穩定版本:[版本 3.1.0,於 2017 年 7 月 6 日發布]。
版本 2 的最新穩定版本可以在 v2 分支中找到。
在 qcubed.slack.com 上加入我們的 Slack。在這裡獲取您的邀請。
QCubed(發音為“Q”-cubed)是一個 PHP 模型-視圖-控制器快速應用程式開發框架,支援 PHP5(5.4 及更高版本)和 PHP7。該框架的目標是節省圍繞平凡、重複性任務的開發時間 - 讓您專注於有用且有趣的事情。 QCubed 在您擁有大型資料庫結構並希望快速提供給使用者的情況下表現出色。
使用 QCubed,您不必處理來自瀏覽器的 POST 和 GET。 QCubed 會自動為您處理這些問題,並將資訊打包到物件導向的表單和控制項中。使用 QCubed 編程感覺非常像編程桌面應用程式。如果你熟悉ASP,它是類似的。
程式碼產生器根據您的資料庫架構自動建立具有匹配表單和控制項的物件類別。它使用 ORM(物件關係映射)的概念,實際上為您建立整個模型層。
Codegen 可以利用外鍵關係和欄位約束來產生隨時可用的資料模型,並配有驗證例程和強大的 CRUD 方法,使您能夠操作對象,而不是不斷發出 SQL 查詢。
更多資訊和範例可在線獲取:https://qcubed.eu/
使用 QQueries 可以簡單且強大地載入模型,所有產生的 ORM 類別都有 Query 方法和 QQNode。透過使用這些方法,取得複雜的資料子集非常簡單 - 並且可以在幾乎任何關聯式資料庫上使用。
QCubed 使用 QForm 的概念來保持 POST 交易之間的表單狀態。 QForm 用作控制器,並且可以包含作為 UI 元件的 QControl。
所有的QControl(包括QForm本身)都可以使用一個模板,也就是視圖層,完成MVC結構。
QControl 可以利用 QForm 的 FormState 透過 Ajax 回呼來更新自身,就像同步伺服器 POST 一樣簡單。所有 jQuery UI 核心小工具都可用作 QControl。
一些 QControl 包括:
學習 QCubed 最簡單的方法是查看範例教學:http://qcu.be/examples/
透過其插件系統,QCubed 可以輕鬆打包和交付核心程式碼庫的增強功能和添加內容。目前活動版本的 QCubed 插件位於以plugin開頭的儲存庫中。
安裝過程詳細描述如下:安裝說明。
3.0 是 2.x 的一個重大架構變更。您本質上應該從頭開始,建立一個新項目,產生模型,使用 ModelConnectorEditor 優化連接器(過去稱為 MetaControls)中產生的內容,然後將程式碼從舊版本複製到新版本。您會發現許多必須手動完成的事情現在都是在生成的程式碼中完成的,因此可能不需要您想像的那麼長時間。讓我們跳吧:-)
v3.1 現在模型中有更改追蹤。每次儲存物件時,它不會將整個物件推送到資料庫,而是僅推送已更改的資料。為此,它使生成的模型超類別中的成員變數變為私有而不是受保護,這可能需要您更改模型子類別中的程式碼。為了幫助過渡,新的私有變數功能預設為關閉。您需要透過編輯 codegen_settings.xml 檔案並將「privateColumnVars=」true「」參數新增至 createOptions 標記來開啟它。有關範例,請參閱 qcubed/install/project/configuration 目錄中的 codegen_settings.xml 檔案。
這將使 Gen 類別中的所有受保護列變數變為私有,因此您將無法直接從 Model 子類別存取它們。例如,如果表中有「名稱」列,您可以執行下列操作:
$ strName = $ this -> Name ;
或者更好:
$ strName = $ this -> getName ();
但不是:
$ strName = $ this -> strName ;
$this->Name
路由到$this->getName()
另外,代替這個:
$ this -> strName = $ strName ;
做:
$ this -> setName ( $ strName );
或者
$ this -> Name = $ strName ;
新功能的好處包括更好的效能、減少 OptimisticLocking 異常以及防止您意外存取由於 QSelect 子句而未載入的值。此外,QSelect 現在可用於控制將物件轉換為其他格式(如 JSON)時產生的內容。
v4.0 是另一個重大的架構變化,旨在支援 PSR-1、PSR-2 和 PSR-4 標準。 v4 為所有核心檔案和庫檔案新增了命名空間。所有核心類別前面的字母「Q」都消失了,因為這本質上是我們在 PHP 中提供命名空間之前進行命名空間的方式。
它包含幫助自動將程式碼從 v3.x 程式碼變更為 v4.0 的工具。有關更多信息,請參閱 qcubed/application 存儲庫中的自述文件。
最新更改清單位於 https://github.com/qcubed/qcubed/commits/master
QCubed 是從 QCodo 衍生出來的,QCodo 是 Michael Ho 的一個專案。 QCubed 依賴 JQuery 並使用 jQuery UI 函式庫來實作其一些核心控制項。