云客Drupal源码分析之类型化数据Typed Data API
各位《云客drupal源码分析》系列的读者:
本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal底层原理,并缩短学习时间,但自《插件系统(上)》主题开始博客仅发布前言和目录,这是因为云客在思考一个问题:drupal在国外如此流行但在国内却很小众,一个重要原因应该是中文资料的缺乏,我们是否能够找到一种方式来激发中文资料的出产?此时同是积极推动者的晴空提出能否用付费阅读的方式来鼓励更多作者?并建立了一个付费阅读drupal资料的网站,个人觉得也许这能激发高质量原创内容的出产,学习者支付很少费用可以节省大量学习时间是划算的,作者也能分配精力去开发高质量内容而得到报酬,drupal普及开了对大家都有益处,为了支持晴空的这个项目,云客决定将从《插件系统(上)》主题开始后续内容全部放在这个网站上收费阅读,读者只需要付很少费用即可,云客在这里承诺该系列得到的所有订阅费用全部捐献给drupal深圳社区,用以组织活动等等,发展社区需要大家贡献力量,该网站已于2017年3月29日上线,请移步:http://nowicode.com/ 阅读本篇完整版
我是云客,【云游天下,做客四方】,联系方式见主页,欢迎转载,但须注明出处
****************************************以下为前言和目录,请移步:http://nowicode.com/ 阅读本篇完整版*******************************
了解一样事物,如果不知道它是用来干什么的,那么学习起来就会很困难,不知道需求很难理解它的设计,drupal8中的类型化数据就是这样典型的情景,学习字段api和非常重要的实体之前需要明白此组件。
为什么需要类型化数据?
php为我们提供了基础的数据类型,如整型、字符串、类、接口等等,但在有些情况下,这些基本类型不够用或者说用起来不方便,比如我们经常处理电话号码,那么我们就需要一个电话号码类型,保存类似这样的数据:0755-12345678、13812345678,你可以认为php的字符串类型可以容纳它,但php却不会自动检查这些内容是否符合电话号码的特征,而要另外写检查代码,也不知道它们能不能被翻译,如果我们能定义一个电话号码类型,该类型只能保存电话号码,其他类型数据无法保存,系统可以根据类型来自动检查它的值是否符合要求,那么就很方便了,这就是为什么我们需要类型化数据组件的原因,它提供了定义一个抽象数据类型的能力。
类型化数据是什么:
类型化数据组件TypedData API的实现:
类型类:
定义类:
类型化数据管理器:
自定义数据类型:
系统默认提供的数据类型:
补充资料:
云客Drupal源码分析之类型化数据Typed Data API相关推荐
- 云客Drupal源码分析之Session进阶
在本系列之前写过<云客Drupal源码分析之Session系统>,但那部分仅仅讲到了drupal会话的基础:Symfony的Session组件 至于drupal怎么去使用这个基础就是本主题 ...
- 云客Drupal源码分析之数据库Schema及创建数据表
本主题是<云客Drupal源码分析之数据库系统及其使用>的补充,便于查询,所以独立成一个主题 讲解数据库系统如何操作Schema(创建修改数据库.数据表.字段:判断它们的存在性等等),以及 ...
- 云客Drupal源码分析之配置系统Configuration(一)
各位<云客drupal源码分析>系列的读者: 本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal8底层原理,并缩短学习时间,但自<插件系统(上)>主题开始 ...
- 云客Drupal源码分析之节点实体访问控制处理器
以下内容仅是一个预览,完整内容请见文尾: 本篇讲解节点实体的访问控制,总结了访问检查链,对"域"."授权id"进行了清晰论述(该知识点可能是中文资料第一次提及, ...
- 云客Drupal源码分析之国际化Internationalization:核心翻译系统
各位<云客drupal源码分析>系列的读者: 本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal底层原理,并缩短学习时间,但自<插件系统(上)>主题开始博 ...
- 云客Drupal源码分析之前端js中的翻译
从本主题开始<云客Drupal源码分析>系列将连续发布和前端js相关的内容,如果您对JavaScript还不熟悉或者需要来一次系统性的整理回顾,在此云客为您准备了以下资料: <PHP ...
- 云客Drupal源码分析之插件系统(上)
各位<云客drupal源码分析>系列的读者: 本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal底层原理,并缩短学习时间,但自<插件系统(上)>主题开始博 ...
- 云客Drupal源码分析之前言
Drupal是一个非常优秀的网站系统,可以说她是一个网站应用开发框架,也可以说是一个cms,她在世界范围内被广泛使用,最为人所知的是美国白宫.联合国等知名机构的官方网站使用了她,随着Drupal8的来 ...
- 云客Drupal源码分析之实体表单显示EntityFormDisplay
以下内容仅是一个预览,完整内容请见文尾: 实体的显示分为表单显示和视图显示,前者用于不同情况下的信息输入,后者用于不同情况下的信息展示,本篇很多内容不止用于本篇所讲的表单主题,也是学习drupal视图 ...
最新文章
- 部署Tomcat服务时,解决Cannot invoke Tomcat Manager 异常
- 众望所归的《JAVASCRIPT凌厉开发--EXT详解与实践 》终于上市了!
- Windows x64内核学习笔记(一)—— 环境与配置
- HDU - 5451 Best Solver(循环群+矩阵快速幂)
- thinkphp 多字段排序
- elastic search与postgresql的数据同步
- 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(6)——Training
- 2015年1月微信上线原创声明功能:智能添加原创标识 转载自动注明出处
- 河工计算机学院抖肩舞,来了来了!河工大版抖肩舞已上线~
- 标准机器学习数据集的最佳结果
- UGUI小技巧之Text随文本内容自动变化大小
- 生信技能树课程记录笔记(七)20220602-20220604
- python不好找工作怎么办信用卡_利用python进行信用卡欺诈检测
- 高绩效团队-VUCA时代的五个管理策略《一》—全书回顾
- 六、MFC 程序的生死因果 (学习笔记)
- vim 修改文件出现错误“E45: 'readonly' option is set (add ! to override)”
- 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较
- 计算机系统设置图标异常,Win7桌面图标异常的解决大全
- Linux指令-唐战伟
- 微信小程序手把手接入腾讯地图