php composer 實現類的自動加載

咱們在開發項目中會常常用到第三方的類庫插件,可是若是每次須要使用的時候都會在代碼的某一處去引入,而後在實例化,這樣作感受很不方便,那麼怎麼實現自動加載呢,下面簡單介紹使用composer實現自動加載:php

原文地址:小時刻我的博客>http://small.aiweimeng.top/index.php/archives/11.htmlhtml

 1.首先須要安裝composer
安裝地址(中國鏡像): https://pkg.phpcomposer.com/#how-to-install-composer
根據它的說明一步一步進行安裝
2.安裝好composer之後建立一個工做目錄,eg:work
3.在項目目錄根目錄下創建一個composer.json文件,格式以下:(注意必須爲空的json格式文件)json

{

}

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

composer install

5.運行後會生成composer文件目錄: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實現自動加載:ui

"autoload": {

   "psr-4": { 
       "src\\": "src/"
    }
}

代碼中```命名空間```(不知道命名空間的話,最好先去搜索查一下)習慣爲```目錄名/文件名```
7.新建src目錄,在目錄下建立IndexController.php,php文件內容以下:spa

//設置命名空間
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命令:code

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;

相關文章
相關標籤/搜索