[PHP] ThinkPhp单字母函数 →→→→→进入此内容的聊天室

来自 , 2020-10-21, 写在 PHP, 查看 171 次.
URL http://www.code666.cn/view/bdd88179
  1. 首先A、D、S、L、C、F、I   他们都在 /THINKPHP/Common/functions.php 这个文件中
  2. 下面我分别说明一下他们的功能
  3. A() 加载Action类
  4. D() 加载Model类
  5. S()全局缓存配置
  6. L() 获取语言定义
  7. C() 获取配置值
  8. F()快速文件数据读取和保存 针对简单类型数据 字符串、数组
  9. I( ) 快速创建一个对象实例
  10.  
  11.  
  12. 1.A快速创建Action对象
  13. $action = new UserAction();// 等同于以下写法:
  14. $action = A("User");  
  15. 而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。
  16. A方法支持跨项目调用,例如:
  17. $action = A("User",'Admin'); //实例化Admin项目的UserAction类
  18.  
  19. 再例如我们的程序有2个Action分别是IndexAction和TestAction,在 IndexAction中有个myHello方法能够输出hello world,如果我也想在TestAction中也输出同样一段文字怎么办?最原始的方法首先我们导入IndexAction.class.php这个文件,然后new IndexAction,最后调用myHello方法才行。
  20. 代码一般为:
  21. PHP代码
  22. <?php  
  23. import("@.Action.Index");  
  24. //导入本项目目录下Action目录下的Index.class.php文件。  
  25. class TestAction extends Action{  
  26.    public function index()  
  27.    {  
  28.        $index=new IndexAction();//实例化IndexAction  
  29.        echo $index->myHello();//调用myHello()方法  
  30.    }  
  31. }  
  32. ?>  
  33. 那么,如果我们用A函数,怎么写呢?PHP代码
  34. <?php  
  35. class TestAction extends Action{  
  36.    public function index()  
  37.    {  
  38.        $index=A("Index");  
  39.        echo $index->myHello();  
  40.    }  
  41. }  
  42. ?>  
  43. 呵呵,少写很多代码吧。当然,这还不是最偷懒的方法,请看下边的R()函数,就知道什么是偷懒的极致了。
  44.  
  45.  
  46. 2:B函数
  47.   这是随着行为应运而生的新生函数,可以执行某个行为,例如B('app_begin');就是在项目开始之前,执行这个行为定义的所有函数,支持2个参数,第二个参数支持需要接受一个数组,例如B('app_begin',array("name"=& gt;"tdweb","time"=>time()));这样。
  48. 3:C函数
  49.     获取配置值,这个大家用的应该不少。虽然使用方便,但是C函数无疑是一个非常强大的函数。
  50. 获取值:
  51. 获取所有设置:C(); 不传递任何参数,返回一个包含所有设置的数组。
  52. 获取指定配置:C('URL_MODEL') 这样就能得到URL_MODEL的配置信息
  53. 获取指定二维数组配置:C("array.name"),这样就返回数组array下的key为name所对应的值
  54. 设置值:为二维数组赋值C("array.name","value"),原理同上(获取array.name的值),后边的value是值面向
  55. 批量赋值:
  56. $test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");
  57. C($test);
  58. 这样直接将数组里的值赋值了
  59. 判断是否赋值:
  60. C("?URL_MODEL")这样前边加个"?",如果已经赋值,则返回true
  61. 需要说明的是,这里虽然更改了配置的值,但是仅仅是这个页面做了更改,到下个页面就不起作用了,如果想改就永久更改,那么需要配合F函数,将配置文件写入config.php才行。
  62.  
  63. 4:D快速创建模型数据对象
  64. 先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
  65. 先在"你的项目"\Lib\Model下建立一个名为UserModel.class.php的PHP脚本,内容如下:
  66. class UserModel extends Model{}
  67. 然后,无需增加任何属性和方法,就可以进行如下操作:
  68. $User = D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表
  69. 也可以用$User = new UserModel()代替,进行实例化对象的操作。
  70. 实例化之后,就可以对数据进行增删查改等一系列操作了,如:
  71. $User->find(1); //查找主键为1的记录
  72. 5.S快速操作缓存方法
  73. ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用
  74. 不同的缓存方式的时候并不需要关注具体的缓存细节。如:
  75. S('data',$Data); //使用data标识缓存$Data数据
  76. S('data',$Data,3600); //缓存$Data数据3600秒
  77. $Data = S('data'); //获取缓存数据
  78. S('name',null); // 删除缓存标识name
  79. 6.L快速操作语言变量
  80. L方法提供了多语言的支持,可以快速设置和获取语言定义。
  81. L(‘USER_INFO’,’用户信息’); //设置名称为USER_INFO 的语言变量
  82. L(‘USER_INFO’);   // 获取USER_INFO的语言变量值
  83. //批量赋值
  84. $array[‘USER_INFO’] = ‘用户信息’;
  85. $array[‘ERROR_INFO’] = ‘错误信息’;
  86. L($array);
  87. 7.C 快速操作配置变量
  88. C(‘USER_AUTH_ON’,true);     //设置名称为USER_AUTH_ON 的配置参数
  89. C(‘USER_AUTH_ON’);  //获取USER_AUTH_ON的变量值
  90. 同L一样,C也支持批量赋值
  91. 注意:配置参数不区分大小写
  92.  
  93. 此外从1.5版本开始,C方法还支持二维数组的操作
  94. C('USER.USER_TYPE',1);
  95. C('USER.USER_AUTH_ON');  
  96.  
  97. 8. F 文件数据保存方法
  98. F方法主要用于项目的文件数据的写入、更改和删除,其工作机理和S方法是类似的,区别在于用途不同,数据保存的目录也不同,而且不能指定缓存方式,因为默认就是文件形式保存数据。
  99. F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存
  100.  
  101.  
  102.  
  103. 9:R函数
  104. 还记得我们的A函数吧,如果仅仅想执行某个方法,其实用R函数更方便,刚才的可以替换成PHP代码
  105. <?php  
  106. class TestAction extends Action{  
  107.    public function index()  
  108.    {  
  109.        $index=R("Index","myHello");  
  110.        echo $index;  
  111.    }  
  112. }  
  113. ?>

回复 "ThinkPhp单字母函数"

这儿你可以回复上面这条便签

captcha