PHP网页设计Zope的长处和Apache+PHP+MySQL的对照
实现固定数量的几张图片的上传;再如调试软件ZendStudio的使用,看了很多次老师的应用,但总感觉用的不顺手,不懂那么多的数据值,到底哪一个才是真正的问题所在;还有如数据库语句的封装,我只会用简单的函数来进行封装。apache|mysql|对照 <P>Zope能和Apache+PHP+MySQL停止对照是由于它便是http办事器,又是数据库,又包括剧本编程言语。如今向人人保举Zope是由于它的功效更丰厚,创立使用更轻易,效力比PHP高几倍。如今的办事器端编程情况有IIS+ASP+sqlserver、Apache+PHP+MySQL、和如今的Zope,比拟较Zope关于文档出书更专业。 我已经用过dw和frontpage编网页,就感到frontpage的导航体系对照好,还有它能生成图形化的题目,和各类专业化的模板。dw的导航体系几近不克不及用,但dw的网页制造更专业,dw的模板也有本人共同的中央。已经想过将frontpage和dw相联合,但感到很别扭。当网站的材料多了最急切的需求是把材料放到数据库中,如许轻易一致办理。经常奇异大型的网站经常有一致的外不雅,丰厚的导航体系,丰厚的相干链接。一定在网站的前面有专业的网站办理软件和专业的手艺人员的撑持。因而我经常寻觅可以用的网站办理体系。在linuxfab.cx网站发明了Zope,终究找到了我想要的器材。每当向人们保举Zope的时分,总有人说我用PHP很好不必换,或说用ASP很好。ASP和PHP对照类似,都是可以在HTML中到场剧本言语。比拟来讲,我对照浏览ASP,它是基于vb的,同时由于它有自力的剧本引擎,也能够撑持Perl、Javascript等剧本。如许人人可以用本人熟习的言语来编程不要另学新的言语。而PHP就对照奇异,原本和Perl很类似,为何不爽性用Perl来完成在页面的嵌入还要专门创造一种言语,来增添人人的进修承当,PHP固然言语略微清晰了一些,但没有基本的分歧,却把Perl的精髓形式婚配丢失落了。Perl也对照奇异,为何不象jsp一样推出不异的功效?因而心思上对PHP对照厌恶,固然它和数据库的严密联合,和能生成图像的功效对照好。Zope固然在网站办理上很精彩,但它同时也是一个很好的编程情况。它撑持Python和Perl,Python如今的开展势头很强,擅长编制大的法式,是一个语法十分丰厚的面向对象的数据库,在良多方面可以取代c和JAVA,编程效力要高良多,很有吸引力。我学完了Python正找不到利用的时机,Zope正好给了我利用Python的时机,也让我领教了Python的壮大。->Zope全部法式都是用Python编的!
Zope是一个面向对象的数据库,是一个文档办理的数据库,是一个壮大的http办事器,是一个完美的开辟情况。从实质和起点来讲,Zope是一个文档办理数据库。它有大批的文档办理功效。
先说Zope做为http办事器的优势:
固然Zope是个数据库,它的一切文档都放到数据库中而不是放到文件体系,但它却完成了一个相似文件办理器的办理界面和一个ftp接口,完整可以看成一个一个人人熟习的文件体系来利用,办理习气很熟习。
而Zope又是一个面向对象的数据库,面向对象的数据库和普通的数据库很纷歧样,它不象关系数据库一样基于表格,而更象文件体系一样是树状布局的。从对象的角度来讲,纪录的各个域值就是对象的各个属性。它超出关系数据库的中央是能顺应各类数据类型,每种数据类型都是一种对象,不仅有各类属性,还有各类操作特定命据类型的办法。经常传闻对象数据库,经由过程Zope才详细接触了对象数据库。(ingresql和userland的产物也是对象数据库)
Zope的特色是把文件和文件夹作为根基的对象,每一个文件和文件夹都可以随便增添属性,同时,文件夹上面的文件和文件夹又是父文件夹的属性。经由过程增添剧本文件的模式,可觉得文件和文家夹增添办法。好比,一个文件可以到场“作者”、“分类”、“难度品级”等属性,文件夹也能够到场“显示此文件夹下一切文件内容”的办法。
Zope还有它共同的办法来完成了对象级的承继。这个办法就是“获得”。好比文件体系的布局是/a/b/c,c是一个文件,在c中假如要援用一个变量v,假如c的属性中没有v,就到b的属性中找,然后找b下是不是有叫v的文件,然后找a的属性,然后找a中的文件,然后找/目次的属性,找根下的文件。假如v是b的属性,就不必出格用a.b.v来援用。如许,c文件中就会从各级文件夹承继丰厚的变量情况。一个典范的例子是,假如在根目次下放置了文件standard_HTML_header,就能够在任何目次下的文件援用它来体现每一个网页的个性的器材。假如在某个目次下需求本人独有的网页后果,只需在这个目次下放一个独有的standard_HTML_header就能够了。如许,这个目次下的文件就会取得这个目次下的header,而不是根目次下的header,从而完成了每一个栏目标特性。
获得的模式还可所以:c.m,m可所以办法,也就是剧本文件,好比用m来使c有别的一种体现模式。m文件可以放到b文件夹下,也能够放到a文件夹下,c.m的表达办法都成立。如许,我在根目次下放了m,网站的一切文件都有了办法m。
用url也能够撑持这类获得,好比用http://my.com/a/b/c/m来挪用办法m。一样,m的变量情况就是/a/b/c。
总结:Zope作为http办事器,可使办事器中的文件和文件夹有属性和办法等丰厚的附加信息。便于文件的查找和办理和体现等操作。同时,它又供应便利的文件操作。
Zope的如今的弱点是,不克不及直接利用内部文件,还要经由过程ftp复制到数据库中。如今有对这方面的弥补办法,但不是Zope默许的。但愿Zope未来能象操作本人的对象一样操作内部文件和其他网站的文件。
Zope作为数据库的优势:
从下面的论说,人人对Zope作为数据库的体现有了也许的印象。Zope和其他数据库比拟,它是一个面向对象的文档数据库。
不像MySQL,Zope有可视的办理界面,Zope的一切的办理任务都是经由过程web来完成的。web界面的长处是跨平台,可以近程操作,便于界面的定制。Zope的办理界面和一个文件办理器相似,当点击一个文件后,有可以用一样的web界面来停止文件的编纂和添加属性、平安办理等。Zope的剧本调试也是用web完成的。
Zope作为数据库,有壮大的用户权限办理功效,它的用户和权限办理十分壮大,可以在某个文件夹下停止添加用户的操作,也分离对特定的对象都有本人的平安权限办理。
网站中数据库中次要的数据是文档,Zope作为文档数据库,有壮大的文档办理功效,有版本办理、汗青纪录功效,有全文检索功效。同时集成了文档的编纂情况和办理情况,办理文档象在文件办理器中一样便利。这些都是普通的数据库所不具有的。
假如,数据库中有上万笔记录,Zope的效力会比传统数据库要低,但Zope有大批的适配器来链接各类数据库。来完成纯表格操作和大批的纪录操作。
Zope作为编程和定制情况的优势:
Zope有dtml(静态模板标志)言语来嵌入HTML中,完成网页的静态化。复杂地利用地模式就能够拔出静态内容。因为可以便利地到场属性和办法和“获得”功效,文档具有极其丰厚的变量情况。可以比普通的客户端包括供应更壮大的功效。又有的模式来便利地获得多个文件地内容。在dtml中还可以嵌入Python表达式。如许,不必编程就具有壮大的静态网页功效,完成导航功效等也垂手可得。这些功效的完成比PHP等言语要轻易的多。
假如要到场庞杂的功效,可以用剧本模块来完成函数和庞杂操作,然后在dtml中挪用剧本模块,如许,完成了逻辑和体现的分别。在Zope中答应用Python、Perl和sql做剧本言语,各类剧本可以互相挪用,如许完成了多言语的夹杂编程,完成了.NET要完成的夹杂编程的目标。Zope为剧本言语供应了一致的Zope API。用这类体例(以dtml为媒体)Perl在unix中也能够完成嵌入HTML的后果。Perl喜好者有福了。在这里可以直接用sql操作数据库,免除了把sql嵌入其他言语的费事。
Zope提出了zclass的概念,在一个product中绑缚了针对特定用处数据的一系列的属性和办法,乃至编纂和检查界面、特定权限、匡助等。好比把义务作为一个zclass,义务有义务的收回人、义务的履行人、义务的入手下手工夫、完成工夫、义务的内容等属性,也能够有一个义务的创立和完成的办法。如许当挪用创立办法时给履行人发一封信,当挪用完成办法时,给收回人发一封信。同时要有义务的web编纂界面,收回义务和修正义务的权限制义。当创立了如许一个zclass,就能够在任何文件夹中到场一个义务实例,Zope先反省用户是不是有新建义务的权限,然后调出义务的编纂界面填入义务的各类属性,也有“创立”和“完成”按钮来挪用办法。经由过程zclass可以便利地为Zope增添新功效。这类product的概念是PHP等言语所没有的功效,而经由过程product,Zope可以思绪明晰地完成一项庞杂地功效。
同时,在product的完成中,不仅可以挪用Zope API,还可以直接挪用Zope自己的各类模块来完成更庞杂的功效。由于Zope是开放源代码的,又是Python完成的,当编程中碰到困难时,可以随时参考Zope的源代码,便利的挪用Zope模块和函数,乃至可以修正Zope代码,这些也是其他编程情况所没有的。
Zope的用户办理、版本办理等功效也是经由过程product来完成的,因而,Zope有一个尺度的、开放的开辟情况。
比来刚读了一篇文章,它用dos和windows的关系来类比Apache和Zope,在Apache中一切的器材都要本人来弄,假如不是本人弄,也要纠合良多分歧的法式来完成本人的义务,而且每一个人的选择是分歧的,如许,形成了互相之间没有配合言语,就像要编dos法式,要先本人到遍地抓一些图形法式、打印法式、声响法式、装置法式等,来纠合在一同,如许很轻易出偏差。而在Zope中,有良多一致的API,当你完成一个product时,用户办理、权限办理、办理界面、编纂界面等这些都是Zope自带的,有API可用,就不必本人乱忙了。好比象zwiki,几近不必它,Zope自己就是一个协同任务的产物自带用户办理和版本办理,这些就不必华侈工夫自力更生了。文章中有一句话很好:“最差的一致编程界面也比没有一致好”。到cmf,Zope更供应了极其丰厚的API。
最初,假如对Zope还有甚么不写意,还可使用cmf(内容办理框架,Zope的二级开辟平台)来创立、办理网站,开辟新功效。cmf对Zope的用户办理、文档办理、product停止了大批的扩大来完成加倍高真个功效。关于cmf的功效,需求别的写一篇文章来叙说。
然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了) 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 做为1门年轻的语言,php一直很努力。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
页:
[1]