表示一个域名下的所有/任何主机 使用 的格式是: [*.] example.com 其中 , example.com叫着 裸域名. (这个example.com/net/org不能被注册, 被保留) 其中 [*.] 中的 点 要放在 括号内.

tp的类自动加载, 总的来说 分两大类

  • 一类是 使用 命名空间的, 这个也是 tp推荐的方式, 可以实现自动加载
  • 另一类是 不使用 命名空间的.

要实现 自动加载, 需要遵循 以下规定:

  1. 是要用 命名空间 来定义;
  2. 是 类的命名要符合 规范, 包括 驼峰命名 和 类的后缀必须是 .class.php
  3. 是 类文件 的 物理位置 必须 和 命名空间的路径 一致.
  • 只要按照上面的规定来做, 就可以实现 自动加载.
  • 系统默认的 可以自动加载的类库是: 第一个是 框架的 Library下的 目录, 叫公共类库, 可以自动加载, 不需要任何说明的; 第二个是 应用类库, 即 Application项目目录下的所有目录, 包括模块目录,common目录, 或者你自己在 项目目录下创建的目录都叫 应用类库, 都可以实现 自动加载
  • 另一个是 你自己增加的 /扩展的/ 注册命名空间: 使用 'AUTOLOAD_NAMESPACE' => array(...);
  • 再一个是你 自己增加的 类/类库 映射, 在 项目的conf目录下创建的 alias.php 文件中的 映射.
    加载的先后次序包括 
    首先检查 alias.php的类映射, 然后是 Library下的 公共类库, 然后是 你 注册的 扩展命名空间, 最后是 应用类库.

第二类就是 , 除了上面的 可以自动加载的 类库, 你想找挫折的时候, 要用 import(...) 来引入的类库(一个类文件, 最好就是 只包含一个 类的 定义)

  1. 没有使用 tp的规范 命名, 比如没有遵循 驼峰命名法.
  2. 类的扩展名不是 .class.php, 而是直接用 className.php 来命名的
  3. 没有使用 命名空间
  4. 虽然使用了命名空间, 但是 物理路径 /位置, 和 命名空间表示的 不一致.
    这几种情况, 都可以用 import来做:
  • import的格式 import('类名' [, '类的路径' [, '类的扩展名比如php']]
  • 通常 import 可以自动识别的 类的 位置 是 公共类库 和应用类库的 位置 , 如果 不是这两个, 那么就要使用 第二个参数 指明 类的位置, 如果类的扩展名不是 .class.php 就要使用 'php'

关于tp的ajaxReturn的使用

在php中实例化一个 php的 原生对象, 使用的是: $o = new \stdClass(); 是用 staClass 而不是 new \Object(), 会提示 没有叫 Object的类.
在tp的控制器中, 指定类的实例化路径时, 因为 你的代码是写在 类定义 的 方法中的, 类定义的 前面是 namespace命名空间,
命名空间默认的 通常是: namespace Home\Controller 就是说 , 方法中所有的 类实例化的时候, 如果不写 "根命名空间", 那么就是引用的
当前命名空间 即: Home\Controller目录中的类. 所以 会报错: Home\Controller中没有这样的类.

  • **实例化类时, 要使用 "完全限定 命名空间", 即从 反斜杠开始的 根 命名空间, 那么tp就会去查找 系统默认 的 有哪些根命名空间, 包括公共类库
    应用类库, 自定义扩展类库, 和映射类库, 这些都是 系统默认的 "根命名空间". 注意 根命名空间, 并不是网站的根目录!

  • ajaxReturn 本身也要return数据, 但是这个返回的数据, 不是给 本类的 其他成员方法使用的, 而是给 ajax客户端使用的. 因为它是ajaxReturn嘛
    因此, 这个方法的调用方式, 就不是: return, 也不是 return $this->ajaxReturn(...), 而是 直接的就是 调用这个方法就好了
    在ajax接收处理handler方法, 的 最后, 调用 $this->ajaxReturn('要返回给前端的数据变量$data')

当然也不能直接在模板中, 使用 {:U('ajaxReturn')} 因为这个U 方法本身其实得到的是一个 html模板地址, 是 一个 控制器的叫 ajaxReturn名称的成员方法, 很显然, 控制器中并没有叫ajaxReturn 的成员方法.

  • 也就是说, 这个 ajaxReturn 要和jquery的 ajax前端请求, 相配合使用, 前端还是 普通的 ajax请求 写法. ajax请求 的地址 还是 控制器的一个
    普通的成员方法, 比如叫 ajaxHandler,

再谈 tp的 实例化 类 的自动加载的更多相关文章

  1. thinkphp系列:类的自动加载是如何设计的

    在使用框架开发时,可以发现框架有很多核心类,却很少看到显示的引入某个文件的代码,这是因为框架都采用了类的自动加载机制,即使用到类时,框架会自动找到该类所在文件的位置并引入该文件.为了更容易看出代码思路 ...

  2. 浅析PHP类的自动加载和命名空间

    php是使用require(require_once)和include(include_once)关键字加载类文件.但是在实际的开发工程中我们基本上不会去使用这些关键字去加载类. 因为这样做会使得代码 ...

  3. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  4. final关键字,类的自动加载,命名空间

    final关键字 1.final可以修饰方法和类,但是不能修饰属性: 2.Final修饰的类不能被继承: 3.Fina修饰的方法不能被重写,子类可以对已被final修饰的父类进行访问,但是不能对父类的 ...

  5. PHP面向对象学习-属性 类常量 类的自动加载 构造函数和析构函数 访问控制(可见性)

    在类的成员方法里面,可以用 ->(对象运算符):$this->property(其中 property 是该属性名)这种方式来访问非静态属性.静态属性则是用 ::(双冒号):self::$ ...

  6. PHP面向对象----- 类的自动加载

    1.类的自动加载 spl_autoload_register函数 test.php <?php spl_autoload_register('autoload'); // require_onc ...

  7. tp5底层源码分析之------tp5.1类的自动加载机制

    tp框架作为国内主流框架,目前已经发布了6.0版本,相当于3.*版本是进行了重构,今天我们从源码的角度来研究下tp5.1自动加载的实现 作为单入口框架,从入口文件看起,入口文件在public/下,那么 ...

  8. php composer 实现类的自动加载

    我们在开发项目中会经常用到第三方的类库插件,但是如果每次需要使用的时候都会在代码的某一处去引入,然后在实例化,这样做感觉很不方便,那么怎么实现自动加载呢,下面简单介绍使用composer实现自动加载: ...

  9. Drupal如何实现类的自动加载?

    Drupal通过spl_autoload_register()注册类加载器实现自动加载: function _drupal_bootstrap_database() { // ... .... spl ...

随机推荐

  1. c#之根据出生日期获得星座信息

    星座定义如下: 代码如下: public enum Constellation { Aquarius = , // 水瓶座 1.20 - 2.18 Pisces = , // 双鱼座 2.19 - 3 ...

  2. c#之正则表达式

    一,C#正则表达式符号模式 字 符 描 述 \ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的零次或多次的子 ...

  3. python读取大文件

    最近在学习python的过程中接触到了python对文件的读取.python读取文件一般情况是利用open()函数以及read()函数来完成: f = open(filename,'r') f.rea ...

  4. Sitecore系统教程之模板理解

    Sitecore中的所有内容都是一个项目.模板也是如此.Sitecore中的模板是一个项目,它定义了其他项目的结构和行为.Sitecore中的每个项目都是某个模板的实例.模板还可以定义它分解成的部分和 ...

  5. Python 第四阶段 学习记录之----多线程

    多线程 多线程例子, 注释部份即为多线程的使用 #-*- coding: utf-8 -*- # Wind clear raise # 2017/3/5 下午2:34 import socket im ...

  6. Hinton“深度学习之父”和“神经网络先驱”,新论文Capsule将推翻自己积累了30年的学术成果时

    Hinton“深度学习之父”和“神经网络先驱”,新论文Capsule将推翻自己积累了30年的学术成果时 在论文中,Capsule被Hinton大神定义为这样一组神经元:其活动向量所表示的是特定实体类型 ...

  7. linux test

    some test .在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID .下面那个用户存放用户密码信息(b) A./ ...

  8. 关于treeMap

    https://www.cnblogs.com/skywang12345/p/3310928.html

  9. getopt_long_only

    st_i2c_parser.c中用到,遂学习一下: 参考:https://blog.csdn.net/pengrui18/article/details/8078813 https://blog.cs ...

  10. lnmp vhost 文件

    server { listen 80 default_server; #listen [::]:80 default_server ipv6only=on; server_name blog.yang ...