• 技术文章 >后端开发 >php教程

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

    不言不言2019-01-03 10:01:16转载1232
    本篇文章给大家带来的内容是关于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;

    以上就是php中composer如何实现类的自动加载(示例讲解)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:composer
    上一篇:PHP的错误类型有哪些? 下一篇:php中curl返回false该如何解决?(示例讲解)
    线上培训班

    相关文章推荐

    • 使用Composer安装Yii框架的方法_PHP• Composer设置忽略版本匹配的方法_PHP• 用 Composer构建自己的 PHP 框架之使用 ORM_PHP• laravel安装-composer提示php加载项未加载到是什么原因,怎么解决呢?• azure-php Azure SDK 通过 Composer 安装,安装不上。• php composer包管理器

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网