composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)

本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

我们在开发项目中会经常用到第三方的类库插件,但是如果每次需要使用的时候都会在代码的某一处去引入,然后在实例化,这样做感觉很不方便,那么怎么实现自动加载呢,下面简单介绍使用composer实现自动加载:

1、首先需要安装composer

安装地址(中国镜像): https://pkg.phpcomposer.com/#how-to-install-composer

根据它的说明一步一步进行安装

2、安装好composer以后创建一个工作目录,eg:work

3、在项目目录根目录下建立一个composer.json文件,格式如下:(注意必须为空的json格式文件)

{

}

4.打开命令行控制台cmd,进入工作目录work,运行composer命令:

composer install

5.运行后会生成composer文件目录:

- Vendor

- composer

- autoload_classmap.php

- autoload_namespaces.php

- autoload_psr4.php

- autoload_real.php

- autoload_static.php

ClassLoader.php

installed.json

LICENSE

- autoload.php

- composer.json

6.打开composer.json文件:

共有四种方式:

PSR-0(不推荐使用);

PSR-4;

Class-map;

Files;

下面演示PSR-4实现自动加载:

"autoload": {

"psr-4": {

"src\\": "src/"

}

}

代码中"命名空间"(不知道命名空间的话,最好先去搜索查一下)习惯为"目录名/文件名"

7.新建src目录,在目录下创建IndexController.php,php文件内容如下:

//设置命名空间

namespace src;

class IndexController

{

public function index()

{

echo 'indexController';

}

}

8.使用刚创建的IndexController类:

在work根目录创建index.php:

//引入vendor下的autoloas.php

require 'vendor/autoload.php';

//实例化对象

$index = new src\\IndexController();

//调用类中的方法

$index->index();

运行后会出现报错:

class IndexController not fund

打开控制台,进入到work文件目录,运行composer命令:

composer dump-autoload

在运行work下的index.php,不报错误信息说明已经成功实现自动加载了。

9.在work下的index.php文件中我们实例化IndexController类的时,格式为"new src\\IndexController();";

如果命名空间较长的情况下,看起来不太方便,那我们可以用"use"来引入关键字,修改index.php代码如下:

use src\IndexController;

//引入vendor下的autoloas.php

require 'vendor/autoload.php';

//修改后的实例化

$index = new IndexController();

//调用类中的方法

$index->index();

在运行index.php结果和上面一样。

**注意:**在配置完composer.json以后一定要运行"composer dump-autoload"不然会出现class not fund;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值