开发教程
关注DiYunCMS公众号
公众号二维码

自动加载识别文件Auto.php

更新时间:2020-12-21 加入收藏

用于本应用的控制器自动加载类设置,用法如同

\CodeIgniter\Config\AutoloadConfig


自动加载识别文件:dayrui/App/应用目录/Config/Auto.php


语法格式:

<?php

// 自动加载识别文件

return [

    /**
     * 命名空间映射关系
     */
    'psr4' => [
        
  

    ],

    /**
     * 类名映射关系
     */
    'classmap' => [
        
  
        
    ],
    
    
];


实现自动化引用类文件,可以对系统类路径进行重新,非常方便的开发方式


一、命名空间映射关系示例

1、创建自动加载识别文件:dayrui/App/Myapp/Config/Auto.php

<?php

// 自动加载识别文件

return [

    /**
     * 命名空间映射关系
     */
    'psr4' => [
        
  'MyDiyun' => APPPATH.'Diyun/', 
  // 前面的MyDiyun是命名空间的名称
  // 后面的是储存目录,专门储存用到 的类文件

    ],


    
];


2、创建其中一个测试类文件  dayrui/App/Myapp/Diyun/Test.php

<?php 
namespace MyDiyun;

class Test {
 
 
 function test() {
  
  return 'MyDiyun test';
  
 }
}

类文件首字母大写.php,

类方法名称必须和文件名保存一致,首字母大写,

必须声明namespace和(1)中的名称保持一致


3、创建控制器,来调用这个类

 dayrui/App/Myapp/Controllers/Test.php

<?php namespace Phpcmf\Controllers;


class Test extends \Phpcmf\Common
{

 public function index() {
  $obj = new \DiDiyun\Test();
  echo $obj->test();
 }

}

此方法可以创建多个类文件,只需要按(2)中的命名来建立


4、访问

/index.php?s=myapp&c=test&m=index

就能输出 MYDiyun test



二、类名映射关系示例

1、创建自动加载识别文件:dayrui/App/Myapp/Config/Auto.php

<?php

// 自动加载识别文件

return [


    /**
     * 类名映射关系
     */
    'classmap' => [
        
  'MyDiyunClass' => APPPATH.'diyun.php',
        
    ],
    
    
];

2、创建这个文件APPPATH.'diyun.php' 表示 dayrui/App/Myapp/diyun.php

<?php 


class MyDiyunClass {
 
 function test() {
 
  return 'test!';
  
 }
}


3、创建控制器,来调用这个类

 dayrui/App/Myapp/Controllers/Test.php

<?php namespace Phpcmf\Controllers;

class Test extends \Phpcmf\Common {

 public function index() {
  $obj = new \MyDiyunClass();
  echo $obj->test(); // 这样就执行上面定义的类,不需要手动去加载他
 }

}

多个类需要在(1)中做多次映射


4、访问

/index.php?s=myapp&c=test&m=index

就能输出 test!


三、第三方php类组件映射关系示例

以queryList为例,下载源码(非Composer方式):https://github.com/jae-jae/querylist

1、将下载的源码复制到插件Myapp目录,例如:

dayrui/App/Myapp/src/

image


2、创建自动加载识别文件:dayrui/App/Myapp/Config/Auto.php

<?php

// 自动加载识别文件

return [

    /**
     * 命名空间映射关系
     */
    'psr4' => [
        
        'QL\QueryList'             => APPPATH.'src',

    ],


    
];


3、创建控制器,来调用这个类

 dayrui/App/Myapp/Controllers/Test.php

<?php namespace Phpcmf\Controllers;

use QL\QueryList;

class Test extends \Phpcmf\Common
{

 public function index() {
  
        $data = QueryList::get('https://www.diyuncms.com')->find('img')->attrs('src');
//打印结果
        print_r($data->all());
 }

}



4、访问

/index.php?s=myapp&c=test&m=index

就能输出 结果


Hello,欢迎来咨询~
点击在线咨询