PHP网页编程之PHP 构建语义Web CRUD 操作
理解动态语言的概念,运做机制,熟悉PHP语法 创立、读、更新和删除(Create/Read/Update/Delete,CRUD)操作是最根基的数据库操作,然而它们也是最主要的操作。CRUD 操作凡是是利用关系数据库体系中的布局化查询言语(Structured Query Language,SQL)完成的。跟着 Web 变得加倍具有面向数据特征,因而需求从基于 SQL 的 CRUD 操作转移到基于语义 Web 的 CRUD 操作。懂得若何利用 PHP 经由过程基于语义的 Web 履行 CRUD 操作。 经常使用缩写词API ― 使用法式编程接口(Application Programming Interface)
CRUD ― 创立/读/更新/删除(Create/Read/Update/Delete)
HTTP ― 超文本传输协定(Hypertext Transfer Protocol)
MVC ― 形式―视图―掌握器(Model-View-Controller)
OOP ― 面向对象的编程(Object-Oriented Programming)
RDF ― 资本描写框架(Resource Description Framework)
SPARQL ― 复杂协定和 RDF 查询言语(Simple Protocol and RDF Query Language)
SQL ― 布局化查询言语(Structured Query Language)
UI ― 用户界面(User interface)
W3C ― 万维网同盟(World Wide Web Consortium)
在开辟 Web 使用法式时,为逻辑层和 UI 层创立放置办事器端代码的数据库布局是一种尺度理论。要毗连到数据库,办事器端代码需求履行一些根基的创立、更新、删除和 ― 最主要的 ― 读取纪录等操作。因为 Web 使用法式的后台数据库凡是都是关系数据库,因而这些 CRUD 操作都是利用尽人皆知的 SQL 言语履行的。然而,跟着 Web 开辟愈来愈多地采取面向对象的编程(OOP),模子也随之产生改动。
资本描写框架(Resource Description Framework,RDF)是描写对象同时保存数据寄义的幻想办法。复杂协定和 RDF 查询言语(Simple Protocol and RDF Query Language,SPARQL ― 发音为 “sparkle”)是凡是用于针对该数据停止查询的言语,由于它在语句组成上婚配 RDF 自己的布局。RDF 和 SPARQL 都是所谓 语义 Web 栈(semantic Web stack)中的手艺。
要完全地使用语义 Web 理念,您可使用 SPARQL 将传统的 Web 开辟手艺使用到 RDF 数据中。本文将展现若何利用简化的形式―视图―掌握器(Model-View-Controller,MVC)设计模子、PHP 办事器端剧本言语和 SPARQL 毗连到 RDF ― 与利用关系数据库体系中的 SQL 相反。
SQL 和 SPARQL CRUD 操作
先决前提 本文假定您根基懂得 SQL、PHP 和 Web 使用法式开辟。懂得语义 Web 也非常有益。要对基于语义 Web 的数据运转 create、update 和 delete 号令,需求具有撑持 SPARQL/Update 标准的语义 Web 数据库。
在利用 SQL 和 SPARQL 停止开辟时,需求检查一下 CRUD 操作之间的异同。清单 1 显示了 read 操作的 SQL 代码。
SELECT realname, dob, locationFROM UserTable WHERE realname = "John Smith";
将这段基于 SQL 的代码与清单 2 中所示的基于 SPARQL 的代码比拟较。采取这两个 read 操作的缘由在于它们最易于了解、完成和申明。这关于 SQL 和 SPARQL 来讲都是一样的。
PREFIX foaf:<http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECT ?uri ?name ?dob ?locationFROM<http://www.example.org/graph>WHERE{ ?urirdf:type foaf:Person ;foaf:name "John Smith" ;foaf:birthday?dob ;foaf:location ?location .} ;
在对照两张清单时,您的第一个设法极可能是 SPARQL 版本分明比 SQL 版本长良多。这是现实,然而请不要误觉得 SQL 必定更复杂并且更洁净。依据所运转引擎的分歧,SPARQL 可以全体经由过程称为链接数据了局(linked data effect)的内容停止分发。另外,它答应具有静态形式,由于它具有相互链接的面向对象的透视图,与严厉的 SQL 关系透视图构成对比。假如您想要把关系数据库表分隔为很多数据孤岛,则实践上利用的 SQL 代码即将比 SPARQL 多良多 ― 更不用说 SQL 中会呈现大批使人厌恶的 JOIN 描写符。
SPARQL 的前两行是 PREFIX 声明。依据语义 Web 实际,一切内容 ― 不管是对象仍是数据图来历(也是一个对象)― 都有一致资本标识符(Uniform Resource Identifier,URI)。PREFIX 行只是将一时标签使用到一些 URI 中 ― 在本例中为 Friend of a Friend 和 RDF 形式。个中的优点是您今后可以在查询中利用 PREFIX 声明而不用利用完全的 URI。
SPARQL 代码的下一行描写了查询恳求。这条语句在实质上与 SQL 语句不异,分歧的地方是对 URI 的附加恳求。注重问号的利用(?)是为了暗示术语是变量。
FROM 语句描写了获得数据的地位。这在 SQL 和 SPARQL 中是不异的,只是在 SPARQL 中,数据源称号是 URI,而非暗示盘算机或收集中某个物理地位的字符串。
二者的 WHERE 语句完整分歧,由于利用 SPARQL,必需指定用于获得数据的形式。一样,假如测验考试过利用关系办法履行此操作,则需求消费的价值比通俗 SQL 多很多:需求利用 PHP、Java? 编程言语或一些其他办事器端言语才干履行数据源之间的反省。SPARQL 代码行完成的操作对照了然,这包含确保正在检索的数据只属于 Person 类型。SPARQL 将获得称号和地位,同时履行一些形式婚配以查找准确的 John Smith。
创立
SPARQL 中的 CRUD 操作凡是比 read 操作更奥秘。然而,可以完成这些操作。起首,create 操作将把新纪录或对象拔出到表或图表中。
INSERT INTO UserTable (realname, dob, location) VALUES ("John Smith", "1985-01-01", "Bristol, UK");
如今,对照清单 3 中基于 SQL 的代码与清单 4 中基于 SPARQL 的代码中的 create 操作。
PREFIX foaf:<http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>INSERT INTO GRAPH <http://www.example.com/graph> (?realname, ?dob, ?location) {<http://www.example.org/graph/johnsmith#me> rdf:Type foaf:Person ; foaf:name "John Smith" ; foaf:birthday <1985-01-01T00:00:00> ; foaf:location "Bristol, UK" }
给你的建议是,有些最常用的语句是需要记住的 比如if for while这些、其他的一般语句你只要知道有这个函数或者有这个功能就可以了,当你用的时候你可以凭借记忆搜索就可以了。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 兴趣是最好的老师,百度是最好的词典。 基础有没有对学习php没有太大区别,关键是兴趣。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 爱上php,他也会爱上你。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 当然这种网站的会员费就几十块钱。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;
页:
[1]