一、使用命令composer init生成composer.json文件,並編輯autoload選項內容以下:php
其中又包含主要的兩個選項: files 和 psr-4。json
files就是須要composer自動幫咱們加載的函數庫(不含類),只要在後面的數組中將函數庫的文件路徑寫入便可。
psr-4顧名思義,是一個基於psr-4(http://www.php-fig.org/psr/psr-4/)規則的類庫自動加載對應關係,只要在其後的對象中,以 "命名空間": "路徑"
的方式寫入本身的類庫信息便可。
修改完成後,只要執行一下composer update
,便可完成對應工做。數組
注意:每次更新完composer.json後,必須執行composer update後纔會生效。composer
{ "name": "sui/test", "description": "test", "type": "project", "require": { "php": ">=5.3.10" }, "autoload": { "files":[], "psr-4":{ "Test\\" :"core/" } } }
咱們來深挖一下,探索一下autoload的原理。
在咱們修改完composer.json並執行update後,將會修改./vender/composer/autoload_psr4.php,好比個人某個項目,其中增長了這樣一個對應關係:函數
1
2
3
4
5
6
7
8
9
10
|
<?php
// autoload_psr4.php @generated by Composer
$vendorDir
= dirname(dirname(
__FILE__
));
$baseDir
= dirname(
$vendorDir
);
return
array
(
'Test\\'
=>
array
(
$baseDir
.
'/core'
),
);
|
二、自動加載測試測試
例如咱們在composer.json同一目錄下創建文件夾core,並編寫ClassTest類:ui
1 <?php 2 namespace Test; 3 class ClassTest{ 4 public function getName(){ 5 return "test"; 6 } 7 } 8 ?>
編寫test.php,並運行test.php,能夠看到界面上打印出了「test」內容:spa
1
2
3
4
5
|
<?php
require_once
__DIR__.
'/vendor/autoload.php'
;
$obj
=
new
\Test\ClassTest();
//實例化類
echo
$obj
->getName();
?>
|