仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1527|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP 5.3中的定名空间:你用过了么?

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:30:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
php   manual(PHP手册)肯定是要从网上下载一个的,它很权威,也很全面,我自己认为它是一本很好的参考书,但是不适合新手当教材使用。     
  定名空间是PHP 5.3中最主要的变更,关于C#和Java开辟人员对这个词语十分熟习了,他们终究可以更好地改动PHP使用法式的布局了。
  为何咱们需求定名空间?
  跟着你的PHP代码库的增加,对之前界说的函数和类名停止修正时风险也更高了,当你试图增添第三方组件或插件时成绩更严重,假如存在两个或两个以上的代码集完成了一个“Database”和“User”类会怎样?
  直到今朝,独一的处理举措是利用长的类/函数名,例如Wordpress在每一个类和函数名前都利用了前缀“WP_”, Zend Framework利用了极具描写性的定名商定,招致类名十分冗杂,如:
  Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive
  定名抵触成绩可使用定名空间来处理,PHP常量、类和函数可以被组合到定名空间库中。
  若何界说定名空间?
  默许情形下,一切常量、类和函数名都放在全局空间下,就和PHP撑持定名空间之前一样。
  在PHP文件的顶部利用一个关头字namespace就能够界说定名空间,它必需是第一个号令(declare除外),在它后面不克不及呈现非PHP代码、HTML或空格。如:
复制代码

    1. < ?php  
    复制代码

  • // define this code in the 'MyProject' namespace   
  • namespace MyProject;   
  •    
  • // ... code ...   
  这一行上面的代码都是指定给MyProject定名空间的,为不异代码块嵌套定名空间或界说多个定名空间是不成能的,假如你真如许干,只要最初一个定名空间才干辨认,但你可以在统一个文件中界说分歧的定名空间代码,如:
复制代码

    1. < ?php  
    复制代码

  • namespace MyProject1;   
  • // PHP code for the MyProject1 namespace   
  •    
  • namespace MyProject2;   
  • // PHP code for the MyProject2 namespace   
  •    
  • // Alternative syntax   
  • namespace MyProject3 {   
  •   // PHP code for the MyProject3 namespace   
  • }   
  • ?>   
  虽然这么干是可以的,但我建议你不要这么做,最好仍是每一个文件中只界说一个定名空间,以免把你弄懵懂了。
  子定名空间
  PHP答应界说具有条理的定名空间以便库可以细分,子定名空间利用一个反斜线字符(\)分隔,如:
  ◆MyProject\SubName
  ◆MyProject\Database\MySQL
  ◆CompanyName\MyProject\Library\Common\Widget1
  挪用定名空间代码
  在lib1.php文件中咱们利用App\Lib1 namespace定名空间界说了一个常量、一个函数和一个类,如:
  lib1.php
复制代码

    1. < ?php  
    复制代码

  • // application library 1   
  • namespace App\Lib1;   
  •    
  • const MYCONST = 'App\Lib1\MYCONST';   
  •    
  • function MyFunction() {   
  •   return __FUNCTION__;   
  • }   
  •    
  • class MyClass {   
  •   static function WhoAmI() {   
  •    return __METHOD__;   
  •   }   
  • }   
  • ?>  
  如今咱们可以在另外一个PHP文件包含这段代码,如:
  myapp.php
复制代码

    1. < ?php  
    复制代码

  • header('Content-type: text/plain');   
  • require_once('lib1.php');   
  •    
  • echo \App\Lib1\MYCONST . "\n";   
  • echo \App\Lib1\MyFunction() . "\n";   
  • echo \App\Lib1\MyClass::WhoAmI() . "\n";   
  • ?>  
  在myapp.php中并没有界说定名空间,因而这段代码存在全局空间中,任何对MYCONST、MyFunction和MyClass的直接援用城市掉败,由于它们存在于App\Lib1定名空间中,为了挪用lib1.php中的代码,咱们可以在\App\Lib1定名空间前添加前缀界说一个完整及格的称号,上面是我载入myapp.php时的输入了局:
复制代码

    1. App\Lib1\MYCONST   
    复制代码

  • App\Lib1\MyFunction     
  • App\Lib1\MyClass::WhoAmI  
  完整及格称号可以变得很长,界说长称号,如App-Lib1-MyClass,有一些分明的优点。
根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-2-3 23:48:43 | 只看该作者
当然这种网站的会员费就几十块钱。
只想知道 该用户已被删除
板凳
发表于 2015-2-9 03:39:56 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
老尸 该用户已被删除
地板
发表于 2015-2-11 00:52:02 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
活着的死人 该用户已被删除
5#
发表于 2015-2-21 12:05:39 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
透明 该用户已被删除
6#
发表于 2015-2-27 20:39:19 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
若天明 该用户已被删除
7#
发表于 2015-3-6 20:09:36 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
乐观 该用户已被删除
8#
发表于 2015-3-13 07:11:13 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
小妖女 该用户已被删除
9#
发表于 2015-3-20 16:33:10 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
谁可相欹 该用户已被删除
10#
发表于 2015-3-24 18:05:19 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
爱飞 该用户已被删除
11#
发表于 2015-3-30 10:09:17 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
简单生活 该用户已被删除
12#
发表于 2015-4-2 16:26:39 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
山那边是海 该用户已被删除
13#
发表于 2015-4-11 10:18:48 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
再现理想 该用户已被删除
14#
 楼主| 发表于 2015-4-13 18:28:13 | 只看该作者
当然这种网站的会员费就几十块钱。
莫相离 该用户已被删除
15#
发表于 2015-4-16 19:11:21 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
飘飘悠悠 该用户已被删除
16#
发表于 2015-4-17 17:43:02 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
灵魂腐蚀 该用户已被删除
17#
发表于 2015-4-20 02:13:34 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
18#
发表于 2015-5-4 14:20:01 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
海妖 该用户已被删除
19#
发表于 2015-5-10 14:21:33 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
深爱那片海 该用户已被删除
20#
发表于 2015-6-12 22:54:41 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 18:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表