Composer實現PHP自動加載

從**composer**出來之後,php開發者對php的代碼構建得心應手,以前臃腫的代碼文件引入的時代一去不復還了。
  1. 在根目錄下創建composer.json文件,內容如下
{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}
  1. 在根據下使用命令:composer install ,composer會自動下載monolog庫,自動加載程序也會自動下載。
	Administrator@sz-tang24680-PC MINGW64 /d/WebService2018/PHPTutorial/WWW/www.bxvtest.com
	$ composer install
	Loading composer repositories with package information
	Updating dependencies (including require-dev)
	Package operations: 1 install, 0 updates, 0 removals
	  - Installing monolog/monolog (1.0.2): Downloading (100%)
	Writing lock file
	Generating autoload files
  1. 然後在json中配置命名空間目錄
	
	//如果使用文件單獨加載
	{
		"require":{
			"monolog/monolog":"1.0.*"
		},
		"autoload": {
        	"files": [
	        	"App/CommonInfo.php",
	        	"App/Zn.php",
	        	"Contract/CommonInfo.php",
	        	"Contract/Zn.php"
        	]
    	}
	}
	//如果使用路徑自動加載
	{
	    "require": {
	        "monolog/monolog": "1.0.*"
	    },
	    "autoload": {
	        "classmap": ["App/","Contract/"]
	    }
	}
	//使用psr-4自動加載規則(https://www.php-fig.org/psr/psr-4/),psr-0(已廢棄)
	{
		"require":{
			"monolog/monolog":"1.0.*"
		},
		"autoload":{
			"psr-4":{
				"App\\":"App/",
				"Contract\\":"Contract/"
			}
		}
	}
  1. 然後再根目錄使用:composer dump-autoload,會自動加載相應的命名空間
  2. 用例測試
	//只需要在使用的地方引入此目錄,然後就可以使用自己定義的命名空間。
	include 'vendor/autoload.php';
	
	use \App\CommonInfo;
	use \App\Zn;
	use \App\Model\Model;
	$send=new CommonInfo(new Zn());
	echo $send->msg('小明','回家喫飯了');

參考一:https://blog.csdn.net/zhang197093/article/details/78118491
參考二:https://www.php-fig.org/psr/psr-4/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章