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