博客列表 >PSR-4标准自动加载,composer使用

PSR-4标准自动加载,composer使用

安
原创
2020年02月18日 22:57:491167浏览

PSR-4标准自动加载

首先要自动加载的文件命名空间必须按照真实目录进行书写(其次要要实现的自动加载的文件名必须和类名一样)
首先我们先创建一下文件目录(用于存放要被自动加载的文件)

在目录下面建一个叫demo1.php的文件
文件这么写

  1. namespace xiaoyu;
  2. //命名空间是需要和真实目录相同
  3. namespace xiaoyu;
  4. class demo1
  5. {
  6. public static function test() :string
  7. {
  8. return 1;
  9. }
  10. }
  11. echo demo1::test();die;

接下来我们创建一个自动加载器auto.php

  1. namespace chapter4;
  2. spl_autoload_register(function($class){
  3. //设置项目命名前缀 Demo\test(这边还是得结束目录得整一下'\')
  4. $prefix = 'Demo\test\\';
  5. //设置一下前缀的类名所对应的类的所在目录
  6. $base_dir = __DIR__ . '/xiaoyu/';
  7. //去掉项目前缀获得真实类名称
  8. $real_class = substr($class,strlen($prefix));
  9. // die($real_class);
  10. //将命名空间分隔符,替换成目录分隔符
  11. $path = str_replace('\\',DIRECTORY_SEPARATOR,$real_class);
  12. // die($path);
  13. //拼接文件目录成php文件所以由此得出类名要和文件名一样;
  14. $file = $base_dir . $path . '.php';
  15. //文件是否存在
  16. var_dump(file_exists($file));
  17. file_exists($file) ? require $file:die('文件目录不存在出现错误');

加载器的大致原理就是:将项目命名空间中所需要自动加载的文件更具其命名空间来获取路径。再由调用器的命名空间来组成一个路径
我们用下面这个la.php来去加载加载器再由加载器去自动加载demo1.php use导入

  1. namespace chapter4;
  2. use Demo\test\demo1;
  3. require 'auto.php';
  4. demo1::test();

Composer使用

  1. # 准备工作: 查看版本,composer要求 php 5.3+
  2. php -v
  3. # 1. 下载composer应用程序
  4. curl -sS https://getcomposer.org/installer | php
  5. # 2. 将composer命令安装到全局, sudo 提权, 需要输入root密码
  6. sudo mv composer.phar /usr/local/bin/composer
  7. # 3. 查看composer版本号, 验证是否安装成功
  8. composer --version
  9. # 4. 设置国内镜像,提升组件下载速度: 以阿里云为例
  10. composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Win的话直接去下载就是了
使用的话可以直接https://packagist.org/ 看即可有手就行demo复制粘贴瞅一瞅就会!
简单的Composer使用就是去下载人家写好的类

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议