雲客Drupal源碼分析之實體表單驗證(上)

以下內容僅是一個預覽,完整內容請見文尾:

關於實體表單驗證主要有三種方式:
1、在表單渲染數組上直接通過屬性設置的驗證,如:#pattern(正則驗證)、#required(必填性驗證),這在前後端均會自動驗證,但這種驗證僅支持單個控件
2、在表單或其子元素上設置的自定義驗證器,這將在表單流程中自動執行,可以進行任意驗證
3、對於內容實體表單而言,會依據字段定義中設置的約束,通過類型化組件進行驗證

這種分類方式是從開發者使用角度來講的,在程序角度看約束驗證也是通過驗證器進行,以上三種方式中前兩種在表單相關主題中已經多次講解,本篇不再做講解,配置實體表單和非實體表單基本使用這兩種方式,這裏主要講解第三種方式,這主要運用於內容實體

類型化數據驗證回顧:
drupal採用了Symfony的驗證器組件,但需注意drupal主要是採用了其設計思想,僅少量Symfony類和接口被使用,核心代碼由drupal獨立開發,摒棄了許多冗餘功能,並實現了實體、類型化數據支持,因此drupal學習者理解Symfony組件代碼不是必須的,但如果理解的話學習drupal會倍感輕鬆,如有興趣可以查閱本系列《symfony驗證器組件validator》主題,此外在本系列的類型化主題和數據驗證主題中已經講過了如何進行數據驗證,這裏做一個簡單回顧:
系統使用“約束對象”來保存驗證規則,每個約束對...

本文目錄如下:
類型化數據驗證回顧
內容實體的遍歷
約束對象Constraint
約束驗證器ConstraintValidator
約束違例對象violation
約束違例列表對象ConstraintViolationList
執行上下文ExecutionContext
驗證器validator
實體及其表單驗證

 

各位《雲客drupal源碼分析》系列的讀者:
本系列分享希望幫助大家理解drupal底層原理,並縮短學習時間,但部分重點內容在博客僅發佈前言和目錄,這是因爲:drupal在國外如此流行但在國內卻很小衆,一個重要原因應該是中文資料的缺乏,我們是否能夠找到一種方式來激發高質量的中文資料出產?此時同是積極推動者的晴空提出能否用付費閱讀的方式來鼓勵更多教程作者?並建立了一個付費閱讀drupal資料的網站,學習者僅需支付很少費用即可查詢到最用心的知識註解,避免大量查找資料,可以節省大量學習時間是划算的,作者也能分配精力去開發高質量內容而得到回報,drupal是精品中的精品,超過一半的世界五百強用她做網站,難能可貴,國內普及初期需要一個良好的土壤,普及開後免費內容會越來越多,爲了支持國內發展,雲客決定將重點內容放在晴空的這個網站上收費閱讀,讀者只需要微信支付很少費用即可,雲客在這裏承諾該系列得到的所有訂閱費用全部捐獻給drupal深圳社區,用以組織活動等等,發展社區需要大家貢獻力量,該網站於2017年3月29日上線,請移步:http://nowicode.com/ 閱讀本篇完整版

我是雲客,【雲遊天下,做客四方】,聯繫方式見主頁,歡迎轉載,但須註明出處

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章