composer autoload

В Composer 2 основные директивы: autoload для загрузки кастомных классов, require — для сторонних библиотек.
Рассмотрю автозагрузку файлов.

Создаем пустой класс  Api в Api.php . Заметьте, название класса должно совпадать с именованием файла.

 


class Api{

	public function __construct(){
		echo "class Api";
	}
}


Далее composer.json


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

Перемещаем наш класс в src. Стандарт psr-0 или psr-4 в данном случае не отличаются.
Генерим автолоадер.


composer dump-autoload

Подключаем файлы в index.php и вызываем наш класс.


require  "vendor/autoload.php";

$obj = new Api;

Можно пихнуть класс подальше , например в src/Api/Classes/Api.php
Как видите просто добавилось пространство имен. Что и надо добавить в нашем классе и месте вызова.


namespace Api\Classes;

Добавлю для наглядности еще один класс с таким же именем.
src/Some/Api.php


use Api\Classes\Api;

$obj = new Some\Api;
$obj2 = new Api;

В гите https://github.com/vaajnur/composer_autoload

Leave a comment

Your email address will not be published.


*