对thinkphp的命名空间的理解

tp的命名空间其实就是虚拟目录,目的是为了自动加载类(不是管理文件)

tp命名空间包含两部分:

(1)初始命名空间:Library

(2)根命名空间:

a)Library文件下的所有文件夹,只含一级文件

b) 应用程序模块名(红色标注的是模块名)

tp框架里所有的类文件里都要写上命名空间!!!

怎么写?

namespace Admin\Controller;

 从根开始写,写的该文件所在的目录为止。

怎么用?

第一种:

use Think\Controller;

第二种:

  当不使用use时:

    a) 将第三方类放在根命名空间目录下(以DBDA.class.php为例,放在Home文件夹下新建的Third文件下)

b)打开该文件,在顶端写上 

<?php
    namespace Home\Third;
   class DB
{
    public $host = "localhost";
    public $uid = "root";
    public $pwd = "";
    public $dbname ="book";
    function query($sql,$type = 1)
。。。。。。。。。

          c)引用时:从初始命名空间开始写,到类名为止

$db = new \Home\Third\DB();
     $db->dbname;

  

 

时间: 2024-11-04 22:06:50

对thinkphp的命名空间的理解的相关文章

关于命名空间的理解---iostream与iostream.h的区别

C++中为了避免名字定义冲突,特别引入了"名字空间的定义",即namespace.当代码中用<iostream.h>时,输出可直接引用cout<<x;<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用. 当代码中引入<iostream>时(C++标准),输出需要引用std::cout<<x;如果还是按原来的方法就会有错,或者直接添加using namespace std; 实例: code1 #

JAVA 不同类加载器命名空间的理解

            以前一直有这样一个疑惑: 都说在JAVA中,由不同类加载器加载的类在虚拟机中位于不同的命名空间下,不同命名空间下的类相互不可见. 这让我产生了一个迷惑:如果有一个类A使用了java.util.List类,为什么在运行时会没有错误.因为按照类加载的双亲委派机制,自己写的类A一般由系统类加载器加载,而java.util.List肯定是由启动类加载器(也叫Root类加载器)加载的,所以这两个类应该不在一个命名空间下.那在运行时为什么类A还 是能访问到java.util.List

thinkphp autoload 命名空间自定义 namespace

使用thinkPHP过程中,一些自定义的类库和第三方类库需要找一个合适的位置放置,放到系统默认的org文件夹感觉不太好,破坏了thinkPHP的原生目录. 就看了一下官方手册,可以在模块或者应用的配置文件里自定义类库的命名空间. 不过使用中需要注意的是,你的自定义的命名空间名称需要和你的文件夹名称相对应,不能更改. 然后测试一下

结合自己的程序对thinkphp模板常量的理解

先上个图,有时候路径很多,没理解会搞混,看手册的说明 页面login.html模板的访问路径为http://www.tp.com/index.php/admin/Manager/login,测试他的常量结果如下 __SELF__,其实是/index.php/admin/Manager/login __URL__,为/index.php/admin/Manager __GROUP__,为/index.php/admin __ACTION__为/index.php/admin/Manager/log

js命名空间的理解与实现

命名空间有效防止函数名/类名和其他人的冲突,在使用多个第三方框架或类库的时候,一旦冲突,唯一能作的就是放弃其中一个.从事Web开发不可避免要接触JavaScript,目前最新版本的JavaScript还是不支持命名空间,所以命名冲突的问题凸显无疑,想象一下你引用了两个js文件,却发现由于命名问题导致你不得不放弃其中一个,从而导致多写了许多代码,无疑是十分令人沮丧的.在JavaScript新版本引入命名空间概念之前,发扬自立更生精神和创造性是我们程序员的基本义务; 实现前提:与java.C#.C.

以 ThinkPhp 为例,理解 PHP 框架的入口

2018-12-29 19:55 ThinkPhp 是用 PHP 语言写的,它所影响到的范围是 PHP 内部,ThinkPhp 必须先被加载起来,它才能工作,所以整体思路是获得入口的加载机会,然后执行框架本身的功能,再调起在框架上开发的功能,例如,URL对应的代码. ThinkPhp 需要外部做的事情是,对于需要 ThinkPhp 处理的页面,调用 ThinkPhp 入口,入口的名字叫 index.php,将 URL 的信息以参数的形式传给 index.php.调起 index.php 是 PH

thinkphp 行为扩展以及插件机制介绍

首先行为扩展这个概念是TP架构的核心组成之一,关于行为的解释我就粗略的概括一下吧:TP在从接受到HTTP请求到最终将视图输出,期间经历的很多步骤,这些步骤大家可以在http://document.thinkphp.cn/manual_3_2.html#system_process 这里面看到,这里就不再详细叙述了,那么行为扩展实际上就是在这些流程里埋下了一个钩子,你可以往钩子里添加你自己的业务逻辑,当程序执行到某个钩子位置时将自动触发你的业务逻辑,关于系统预置的一些钩子可以参考:http://d

thinkphp5.0命名空间

命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass(); $xml = new SimpleXmlElement($xmlstr);

命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式

一.命名空间:namespace 命名空间 可以理解为逻辑上的使用,为了防止重名 namespace :关键字 加载:require_once();//加载一次 include_once() 申明命名空间注意:名称空间一定是在最顶部 在他上面不能有任何内容,名称空间申明不能写在类的内部 use App\Stu; 引入,导入 名称空间\引入类名 as:取别名 二.smarty使用 smarty是一个使用php写出来的模板引擎,拥有独立简单的模板语法,它实现了逻辑代码与模板的分离,把原本HTML与P