亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

php中composer如何實現(xiàn)類的自動加載(示例講解)

來源:不言 發(fā)布時間:2019-01-04 15:02:43 閱讀量:966

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php中composer如何實現(xiàn)類的自動加載(示例講解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

我們在開發(fā)項目中會經(jīng)常用到第三方的類庫插件,但是如果每次需要使用的時候都會在代碼的某一處去引入,然后在實例化,這樣做感覺很不方便,那么怎么實現(xiàn)自動加載呢,下面簡單介紹使用composer實現(xiàn)自動加載:

1、首先需要安裝composer
安裝地址(中國鏡像): https://pkg.phpcomposer.com/#how-to-install-composer
根據(jù)它的說明一步一步進行安裝

2、安裝好composer以后創(chuàng)建一個工作目錄,eg:work

3、在項目目錄根目錄下建立一個composer.json文件,格式如下:(注意必須為空的json格式文件)

1

2

3

{

 

}

4.打開命令行控制臺cmd,進入工作目錄work,運行composer命令:

1

composer install

5.運行后會生成composer文件目錄:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

- 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實現(xiàn)自動加載:

1

2

3

4

5

6

"autoload": {

 

   "psr-4": {

       "src\\": "src/"

    }

}

代碼中"命名空間"(不知道命名空間的話,最好先去搜索查一下)習慣為"目錄名/文件名"

7.新建src目錄,在目錄下創(chuàng)建IndexController.php,php文件內(nèi)容如下:

1

2

3

4

5

6

7

8

9

//設(shè)置命名空間

namespace src;

class IndexController

{

    public function index()

    {

        echo 'indexController';

    }

}

8.使用剛創(chuàng)建的IndexController類:
在work根目錄創(chuàng)建index.php:

1

2

3

4

5

6

//引入vendor下的autoloas.php

require 'vendor/autoload.php';

//實例化對象

$index = new src\\IndexController();

//調(diào)用類中的方法

$index->index();

運行后會出現(xiàn)報錯:

1

class IndexController not fund

打開控制臺,進入到work文件目錄,運行composer命令:

1

composer dump-autoload

在運行work下的index.php,不報錯誤信息說明已經(jīng)成功實現(xiàn)自動加載了。

9.在work下的index.php文件中我們實例化IndexController類的時,格式為"new src\\IndexController();";
如果命名空間較長的情況下,看起來不太方便,那我們可以用"use"來引入關(guān)鍵字,修改index.php代碼如下:

1

2

3

4

5

6

7

8

use src\IndexController;

 

//引入vendor下的autoloas.php

require 'vendor/autoload.php';

//修改后的實例化

$index = new IndexController();

//調(diào)用類中的方法

$index->index();

在運行index.php結(jié)果和上面一樣。
**注意:**在配置完composer.json以后一定要運行"composer dump-autoload"不然會出現(xiàn)class not fund;


標簽: PHP
分享:
評論:
你還沒有登錄,請先