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/

发布了46 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/tangqing24680/article/details/100143829