导航:首页 > 编程语言 > thinkphp加载php文件

thinkphp加载php文件

发布时间:2022-06-25 03:02:32

php,thinkphp自动加载怎么实现的呢

php 中有个魔术方法__autoload ,这个函数在找不到类的时候就会调用,自动加载就是在这里实现的。通过指定自动加载类的路径,只要保证文件名和类名一样。就可以自动加载。这也是为什么你看很多源码中类的名字和文件名一样的原因,这样可以实现自动加载,不需要include.

② thinkphp 怎么引用文件

THINKPHP引入PHP文件和原生的是一样的,没有区别! 因为TP是基于PHP上的一个框架。
目前有两种方法,一种是include和require,还有一种是include_once和require_once。根据不同的场合使用不同的代码。前面一种是局部引入,如果不存在会提示但不会终止;后面一种引入是将被引入界面认为是现有页面的一个整体,如果不存在会终止程序并报错。
具体参考代码如下,include类同,具体参考上方区别:

require './path/file_name.php'; //可以执行多次,例如某个模块
require_once './path/file_name.php'; //只包含一次,一般为通用函数等

在thinkPHP中模板和css是这样的输出和引用的:
首先说模板要放在与模板对应的文件夹中,然后css和js等外部引用的文件要在你模板目录下新建一个名叫public的文件夹,css和js文件就是放在这个文件夹中的。
注意此时要更改模板(htnl文件)中的引用地址的代码,例如:
原来你引用css文件是这样引用的:

<link rel="stylesheet" href="./Css/index.css" />

但是在thinkPHP中你要改成:

<link rel="stylesheet" href="__public__/Css/index.css" />

__public__的意思访问当前目录下的public 文件夹,thinkPHP就会访问public文件夹。

③ thinkphp怎样在html加载php文件

thinkphp有个<php></php>标签,里面可以写php代码,在标签里面直接clude文件,我想是可以的。

④ thinkphp 加载常用函数和配置文件 会有缓存吗

一、配置文件设置首先,我们在TP项目配置目录Config下新建一个配置文件,命名为setting.config.php,这个文件用以保存动态的参数。然后,项目主配置文件Config.php中用合并数组的方式,将setting.config.php合并进来。这样,在整个项目中,即可调用setting.config.php中的配置参数了。
二、实现动态管理参数在后台,建立一个功能,将setting.config.php的默认值读出,并显示在一个表单中。这里可以使用TP的C函数实现。然后,即可在表单中对各个参数的值进行设置。表单提交保存后,将表单提交的值,进行处理,具体代码如下:setting.config.php文件的结构
<?php
return array(
'setting'=>array(
'tel'=>'400-088-7380',
'qq'=>'88888888',
......
),
);
?>
保存配置参数的操作
function SaveSetting(){
//setting.config.php文件的路径,通过settingfile_path来设定;
$setfile='./Home'.C('settingfile_path');
$a=C('setting');//将默认配置参数的内容赋值给$a;
$b=array(
'tel'=> $_POST['tel'],
'web'=> $_POST['web'],
........
);
//这里将新的参数值,通过后台的表单提交过来;
$c=array_merge($a,$b);
//将数组$a和$b合并;我们知道,array_merge()函数,可以合并两个数组,并且如果数组元素具有相同的键名,后面的值会覆盖前面的值(数字键名除外);然后,将合并后的数组$c的值进行遍历后,生成php文件代码;
$settingstr="<?php \n return array(\n'Setting' =>array(\n";
foreach($c as $key=>$v){
$settingstr.="\t'".$key."'=>'".$v."',\n";
}
$settingstr.="),\n);\n?>\n";
file_put_contents($setfile,$settingstr);//通过file_put_contents保存 setting.config.php文件;

到此,setting.config.php文件的配置参数的值,已经被更新;(Thinkphp3.1版本,已经支持C函数保存设置的参数值,所以,本方法,适合于3.0及以下版本的TP)另外,我们知道TP在第一次运行时会把项目所有的配置文件,配置参数等,生成一个runtime缓存文件,如果我们更新了congfig 的内容,那么必须删除项目中的缓存文件后才能生效。为此,我们让系统自己来清空缓存,更新参数。代码如下:
//RUNTIME_FILE常量是入口文件中配置的runtimefile的路径及文件名;
if(file_exists(RUNTIME_FILE)){
unlink(RUNTIME_FILE);//删除RUNTIME_FILE;
}
光删除runtime_file还不够,要清空一下Cache文件夹中的文件;代码如下:
$cachedir=RUNTIME_PATH."/Cache/";//Cache文件的路径;
if($dh = opendir($cachedir)){//打开Cache文件夹;
while(($file = readdir($dh))!==false){//遍历Cache目录,
unlink($cachedir.$file);//删除遍历到的每一个文件;
}
closedir($dh);
}
到此,整个动态配置参数文件,并清空缓存的功能全部实现

⑤ thinkphp import 导入文件怎么使用

1,ThinkPHP import 方法
ThinkPHP 模拟了 Java 的类库导入机制,统一采用 import 方法进行类文件的加载。import 方法是 ThinkPHP 内建的类库和文件导入方法,提供了方便和灵活的文件导入机制,完全可以替代 PHP 的 require 和 include 方法。
但对于第三方类库,我们建议使用 vendor 方法来导入。
2,import 语法:
boolen import(class, baseUrl, ext)

参数说明:

参数
说明

class 必须,表示要导入的类库,采用命名空间的方式。
baseUrl 可选,表示导入的基础路径,省略的话系统采用默认的规则,具体见下文。
ext 可选,表示导入的类库后缀,默认是 .class.php 。
import 方法是 ThinkPHP 内置的一个普通函数,可以在模块操作内自由使用,可以参考 PHP include 和 require 的用法。
import 类库导入例子
导入 ThinkPHP 基类库文件
import 方法导入 ThinkPHP 基类库文件,约定导入 Think、ORG、Com 包以 ThinkPHP 系统基类库为相对起始目录:
// 导入 ThinkPHP系统目录/Lib/Think/Util/Session.class.php 文件
import("Think.Util.Session");
// 导入 ThinkPHP系统目录/Lib/ORG/Util/Page.class.php 文件
import("ORG.Util.Page");

导入项目应用类库文件
// 导入 MyApp项目 Lib/Action/UserAction.class.php 文件
import("MyApp.Action.UserAction");
// 导入 MyApp项目 Lib/ORG/Page.class.php 文件
import("MyApp.ORG.Page");
// 导入 MyApp项目 Lib/ORG/My/Image.class.php 文件
import("MyApp.ORG.My.Image");

如果是当前项目,可以简化为:
import("@.Action.UserAction");
import("@.ORG.Page");
import("@.ORG.My.Image");

这种写法有利于项目的移植。如果是导入其他项目的类库,必须指定项目名称:
import("OtherApp.Action.UserAction");

注意:使用这种方式导入其他项目的类库时,必须保证两个项目的目录是平级的,否则需要指定 baseUrl 参数。
指定 baseUrl 参数
对于以上导入系统类库和项目类库的情况,import 方法会自动识别类库导入的路径,其他情况就需要指定 baseUrl 参数。如导入当前文件所在目录下的 My.class.php 文件:
import("My",dirname(__FILE__));

指定 ext 参数
ext 参数表示导入的类库后缀,默认是 .class.php。如果导入的文件不是 *.class.php 格式的,可以指定 ext 参数。如导入当前文件所在目录下的 My.php 文件:
import("My",dirname(__FILE__),".php");

. 符号文件导入
在 import 方法中,. 符号是用于表示目录层次的,如果需要导入的文件名包含有 . 符号,如 User.Info.class.php ,那么需要以 # 号来代替 . 号:
import("@.Action.User#Info");

别名导入
如果在别名定义文件定义了别名:
'AdvModel' => THINK_PATH.'/Lib/Think/Core/Model/AdvModel.class.php',

可以使用 import 方法以别名的方式导入对应的类库文件:
import('AdvModel');

系统默认的别名定义文件位于 ThinkPHP 系统目录下的 Commonalias.php,也可以定义项目自己的别名文件。
其他说明
同名文件导入冲突
import 方法具有缓存和检测机制,相同的文件不会重复导入,如果发现导入了不同的位置下面的同名类库文件,系统会提示冲突,例如:
import("Think.Util.Array");
import("App.Util.Array");

上面的情况导入会产生引入两个同名的 Array.class.php 类,即使实际上的类名可能不存在冲突,但是按照 ThinkPHP 命名规范,类名和文件名是一致的,所以系统会抛出类名冲突的异常,并终止执行。
什么时候需要使用 import 方法?
import 方法用于导入当前需要而 ThinkPHP 又不能自动载入的文件,如系统基类 ORG 与 Com 目录下的扩展基类,自己的类库等。至于第三方类库,也可以使用 import 方法导入,但建议使用 vendor 方法导入。
import 方法与 import 标签的区别
import 方法用于模块操作中导入不能自动加载的文件类库,import 标签用于在模板中导入外部 Js 和 CSS 文件。
import 方法与 PHP6 import
在未来的 PHP6 版本中开始支持命名空间和 import 关键字,因此可以预见,ThinkPHP 可能会对 import 方法加以改写。

⑥ thinkphp 中Common.php文件怎么不能自动加载

注意linux下对大小写有严格要求,检查一下大小写Common/common.php,改正确后删除Runtime,再试试

⑦ thinkphp 3.2.2版本中 是怎么加载 functions.php 的,给解释一下

ThinkPHP的函数有三类,一类是系统函数,在ThinkPHP目录下的Common下;一类是项目函数,在项目目录下的Common目录中;最后一类是扩展函数。

1、系统函数:包含function.php、common.php和runtime.php三个文件,程序运行时无需手动加载,在编译过程中自动加载;

2、项目函数:是项目中的Common文件中的Common.php 文件(一般不存在,需自己创建),分组部署时,需要使用 (分组名)/function.php命名。此类函数也是可以直接加载的;

3、扩展函数是指用户自定义的函数,可以提供给开发者更多的DIY内容,函数名自定义,但是不是在设置了自动加载的情况下是不能自动加载的。

函数的加载:

系统函数和项目函数是不需要加载就能直接使用的,但是扩展函数还是需要加载才能使用的,这里可以有动态和静态两种方式加载扩展函数:

1、动态加载:(可以实时生效)

'LOAD_EXT_FILE'=>'USER'//项目中的conf.php

2、手动加载:(个别模板使用)

load(@.user)//加载的就是Common目录下的user.php,@只本目录下的

⑧ thinkphp怎么引入外部文件

thinkphp引入外部文件操作如下:
/*
类文件命名方式IDCheck.class.php
类文件里面注意要命名空间,,例如在Think文件夹下面,就要命名为namespace Think;
*/
/*
控制器里面的写法:
引入方法:use Think\IDCheck;
然后再实例化该类,实例化方法:$ID = new IDCheck();
*/

⑨ thinkphp 怎么加载根目录配置文件

默认情况就会加载根目录下的配置文件。
在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是:
惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置
以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以配置的优先顺序从右到左。

阅读全文

与thinkphp加载php文件相关的资料

热点内容
程序员接私活初级 浏览:431
全无油润滑压缩机 浏览:183
代码加密常用方法 浏览:952
安卓手机如何解除已禁用 浏览:396
算法的随机性 浏览:485
高中解压体育游戏 浏览:533
androidstudior丢失 浏览:345
命令行笔记 浏览:737
360目标文件夹访问拒绝 浏览:518
3b编程加工指令 浏览:789
c8051f系列单片机选型手册 浏览:772
南昌php程序员 浏览:512
bcs命令 浏览:446
如何在服务器指向域名 浏览:417
车床编程可以做刀吗 浏览:519
ln命令源码 浏览:792
用粘液做解压手套 浏览:331
icloud收信服务器地址 浏览:500
编程思考者 浏览:453
压缩机型号用什么氟利昂 浏览:553