正在声明次级名称空间时,您可以利用两个常睹技巧,或同时利用它们。获得名称空间的常睹处所是项目名或利用法式名;另中一个处所是域名。
次级名称空间是顶级名称空间内部的名称空间。当顶级名称空间还缺累觉得PHP类成立上下文时,它们供给进一步申明。
果为大概是多个利用法式或库的类名,所觉得该名称空间添加组织名和项目名可以或许让那个类与其他同名的类辨别开来。
域是对更年夜的题目域的一组分类。域的一个例子是正在更年夜型的利用法式中处置帐户、客户和产物的“Account”、“Customers”或“Products”。
利用域名是另中一种选择次级名称空间的常睹体例,如清单6所示。它也能够用于项目名以后,是不是利用取决于您对可重用性的圆案(睹“按照可重用人命名”)。
除利用撑持可重用性的模块概念以中,类和名称空间的定名体例也可以或许真现PHP教程:PHP代码中的名称空间可重用性。有时不良的定名体例会侵害可重用性,由于欠安的名称表示着类仅能用于特定目标。一样,毛病地利用名称空间大概会不需要地局限类的利用规模,让它们的重用变得坚苦。
代码中的名称空间就像真际天下中的上下文。思索一个透露表现真际天下中的汽车对象的类。例如,经过Internet收卖汽车的公司利用的类的行动大概与保险收卖公司利用的类完整差别。
正在PHPV5.3中引进的名称空间是为PHP类、常量和函数供给上下文的一种体例,从而可以将利用沟通名称的元素看做是唯一的。唯一的名称制止了定名辩论,当两个类或函数利用沟通的名称时就会产生那类环境。有时那些PHP类透露表现真际天下中的沟通对象,但它们的行动是完整差别的。名称空间可以或许确保您具有准确的PHP类、常量或函数,而且要利用您的PHP类的人可以或许确保他们利用了准确的类。
WebjxCom提醒:PHPV5.3撑持为PHP类、常量和函数供给名称空间。利用名称空间制止定名辩论,并为PHP代码供给上下文。那些技巧为构建名称空间供给一些指点本则,从而充真使用名称空间带来的益处。
清单5.利用利用法式名作为次级名称空间
若是您为某个组织构建名称空间,您可以利用组织名作为顶级域。普通环境下,利用组织名称建立顶级名称空间已足觉得PHP代码供给上下文,和制止定名辩论,除非该组织编写年夜量用处纷歧的利用法式。
正在利用组织名的顶级名称空间中,应当保存“Common”、“Core”、“Lib”等可跨利用法式重用的名称空间。一个常睹的例子是考证,此中针对全部企业的库存单元(SKU)、帐号或收票号的法则是一样的,从而取得开适的法则和长度。对Validator类,相似清单7的名称空间是不错的选择。
清单4.次级名称空间
经过域界说
清单3的示例隐现了若何声明顶级名称空间。
按照可重用人命名
经过项目界说
清单6.利用域作为次级名称空间
正在那里,组织名用作顶级域(“MyCompany”)。“Common”名称空间用作项目。纵然正在编写那个类的同时或许正正在编写一个特定的利用法式,该类一样可以正在组织的任何项目中利用。最后,“Validation”用作类的域。
若是您利用组织名作为顶级名称空间,而且想经过次级名称空间来进一步供给上下文,那末可以利用项目名或利用法式名作为次级名称空间。例如,若是您构建一个称为Greeter的新利用法式(用于获得用户的名称并问候他们),那末清单5中的名称空间将为称为的类供给完备的上下文。
清单1.正在名称空间中声明类
作为利用法式开辟职员,您大概利用其他人编写的组件。您不克不及包管其他人永久倒霉用您已利用的类名,但那些类的行动却年夜相径庭。正在呈现名称空间之前,PHP开辟职员凡是是将上下文构建到类名中,例如或。
顶级名称空间
次级名称空间
清单3.顶级名称空间
正在决议为了便利组织代码应当向另中一个名称空间引进几多个次级名称空间时,我测验考试将该数目限造为7个(上下浮动不跨越2),以使用数字7越收轻易记住那个优势。那其真不老是见效的,但我将它作为一个指点本则,以确保不将名称空间划分为过量的次级名称空间。
清单7.利用通用的validation名称空间
其他说话(好比Java™和C#)正在好久之前就利用名称空间。正在选择名称空间定名体例上,我利用的商定相似于那些说话的商定,由于很多开辟职员都对此比力熟习,便于他们理解。不中,与Java说话差别的是,PHP中的名称空间与类地点的目次之间出有联系。您可以给类、函数或常量选择肆意的名称空间。您乃至可以对一个文件利用多个名称空间。同时,PHP名称空间也差别于C#,您可以对类之中的函数或常量利用名称空间。
正在向所有类添加名称空间之前界说一个名称空间战略是个不错的主张。虽然正在某种水仄上也能够不停地构建名称空间,但最好为名称空间肯定一个通用构造,以便利名称空间的组织,并削减今后大概需要的点窜。只要准确利用,除供给上下文以中,名称空间还可以用来组织PHP代码。
清单1隐现了一个位于名称空间中的类。
正在建立次级名称空间时,不要凭一时的乐趣而过量地建立,那很主要。跟着次级名称空间的增多,组织和援用它们就会变得愈来愈坚苦。若是您希看名称空间收扬两重感化,即制止定名辩论和组织PHP代码,那末就要越收注重那点了。
反斜杠()将次级名称空间“developerWorks”与顶级名称空间“IBM”分隔。
清单4的示例隐现了正在顶级名称空间中声明次级名称空间。
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交