再谈 tp的 实例化 类 的自动加载

表示一个域名下的所有/任何主机 使用 的格式是: [*.] 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'

猜你喜欢

转载自www.cnblogs.com/bkylee/p/9047002.html