关于thinkPHP中的自动加载和手动导入

首先先讲自动加载:

前提:你的第三方类库要满足(1)符合命名规范和后缀的类库(2)使用命名空间,命名空间和路径一致的类库

(1)在ThinkPHP目录下的library目录下的每一个子目录都是一个根命名空间

(2)凡是以这些子目录为根命名空间的类都可以自动加载

例如:Org/某某.class.php  Think/某某.class.php  我们在项目中使用的时候

    (a)直接 new \Org\某某.class.php既可以获得对象,或者

    (b)use Org\某某; 实例化的时候直接new 某某();即可

如果你不想在Library下面创建,你想单独建一个文件夹存放第三方引入的类,你也可以自己注册一个根命名空间

在配置文件中配置: AUTOLOAD_NAMESPACE=>array(

                        ‘新的根命名空间名称‘=>THINK_PATH.‘新文件夹名称‘

                        )

THINK_PATH就是你的ThinkPhp文件夹

这时候你可以把第三方类库放入刚刚新建的文件夹中,譬如:ThinkPhp/MyNamespace/Ceshi.class.php

                对应的配置文件这样写:AUTOLOAD_NAMESPACE=>array( ‘MyNamespace‘=>THINK_PATH.‘MyNamespace‘)

(1)记住:你的第三方类的命名空间要写上:namespace MyNamespace; 使用的时候new /MyNamespace/某某.class.php

(2)如果你觉得麻烦,不想在第三方类库里写命名空间可以这样:AUTOLOAD_NAMESPACE=>array( ‘某某‘=>THINK_PATH.‘MyNamespace/某某.class.php‘)直接指向第三方类

而不是文件夹,使用的时候:new \某某();即可

                         

时间: 2024-11-05 19:36:36

关于thinkPHP中的自动加载和手动导入的相关文章

在Thinkphp中【自动加载自定义扩展配置文件】!

/Conf/config.php为正式的扩展文件 /Conf/verify.php为扩展的自定义配置文件 /Conf/sendmail.php为扩展的自定义配置文件 如果要自动加载 verify和sendmail的扩展配置文件,方法如下: 在Config.php里新增一个: 'LOAD_EXT_CONFIG' => 'verify,sendmail' 就可以了. verify.php内容: <?php return array( 'size' => 4, 'title' => '测

Composer中的自动加载

Composer是PHP的一个包依赖管理工具,类似Ruby中的RubyGems或者Node中的NPM,它并非官方,但现在已经非常流行.此文并不介绍如何使用Composer,而是关注于它的autoload的内容吧. 举例来说,假设我们的项目想要使用monolog这个日志工具,就需要在composer.json里告诉composer我们需要它: { "require": { "monolog/monolog": "1.*" } } 之后执行: php

PHP .htaccess中添加自动加载的PHP文件

[UPDATE:solution] thx everyone, especially RiaD for its idea, this is what I've done: Edited my .htaccess file at the root of my website and added the following line, #Loads an init php located at <fullpath>/<path-to-folder-with-php-files-to-incl

【终于明白】PHP加入命名空间的好处--方便自动加载

一个PHP项目,通常只有一个入口文件index.php,我们通常会在这个入口文件中写入自动加载函数,用来require以后会实例化的类文件.如: spl_autoload_register(function ($className) { require 'class/' . $className . '.php';}); 通过以上的代码,我们发现:在自动加载时,我们需要指定存放类的文件夹,以便找到相应的类.那么问题产生了. 在引入命名空间之前: 我们的项目目录 index.php Control

CI关于自动加载

/application/config/autoload.php文件中定义自动加载的包.类库.helper.用户配置文件.语言文件.模块 类库会到/application/libraries目录和/system/libraries下匹配对应的类库并加载 helper会到/application/helpers目录和/system/helpers下匹配对应的helper文件 用户配置文件会到/application/config下匹配对应的文件名 语言文件会到/application/langua

ThinkPHP 3.2.3 自动加载公共函数文件的方法

方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php),即默认的公共函数文件为 ./Application/Common/Common/function.php. 例如,在 ./Application/Common/Common 下新建 function.php,

thinkphp学习笔记9—自动加载

1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\Util\Auth类: namespace Org\Util; class Auth { } 保存到ThinkPHP/Library/Org/Util/Auth.class.php 这样我们就可以直接实例化了, new \Org\Util\Auth(); 实例化之后系统会自动加载 ThinkPHP/Library/Org/Util/Auth.

2)thinkphp的带有命名空间的自动加载机制

(1)为啥thinkphp里面的文件要是写你的命名空间,要与你的路径一样,因为在thinkphp实现自动加载机制的原理,就是靠的你的命名空间对应这个路径,然后自动加载机制通过这个路径找到你的类文件,然后进行实例化. (2)命名空间是虚拟的目录,并不是真实存在的目录 (3)其实我觉得  命名空间是可以不一样的,然后那个thinkphp将你的命名空间转化为相应的路径(但是thinkphp中,命名空间就是路径)

PHP中的use、命名空间、引入类文件、自动加载类的理解

use只是使用了命名空间,但是要想调用类,必须要加载类文件,或者自动加载. 即便是引入了其中一个类,如果没有自动加载机制,还是会报错 use的几种用法 namespace Blog\Article; class Comment { } //创建一个BBS空间(我有打算开个论坛) namespace BBS; //导入一个命名空间 use Blog\Article; //导入命名空间后可使用限定名称调用元素 $article_comment = new Article\Comment(); //为