@Alk90
php, mysql, jquery, css, html, api

Как использовать библиотеку с пространством имен?

Всем привет! Не могу разобраться в пространствах имен...
Скачал я библиотеку в директорию: /libs/biblioteka/title/lib.php
Внутри прописано что-то вроде:
namespace title;

class lib {
   //....
}


Так же у меня есть функция автозагрузки:

spl_autoload_register(

	function($class_name){
		$class_name = str_replace('\\', '/', $class_name);	
		
		if(file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$class_name.'.php')){
			require_once $_SERVER['DOCUMENT_ROOT'].'/'.$class_name.'.php';
		}
	}

);


Как мне в абсолютно случайном файле, в любом месте на сервере подключить запустить эту библиотеку?
Я пробовал так:
use \libs\biblioteka\title\lib as lib;
$lib = new lib;


Но получаю ошибку: Fatal error: Uncaught Error: Class 'libs\biblioteka\title\lib' not found in
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 3
SerafimArts
@SerafimArts
Senior Notepad Reader
Очевидно, что
new title\lib();

или
use title\lib;

new lib();


Если не заработает - косяк в автолоадере.

Как разберётесь - переходите к изучению PSR-0/PSR-4 и композеру.
Ответ написан
Комментировать
@Vasiliy_M
Вариант 1 - Разобраться с пространством имен самостоятельно. Никто за вас дебажить тут не будет ваш код. Явно ошибка в путях где-то.
Вариант 2 - Ставить библиотеки через Composer и не иметь головной боли.
Ответ написан
Комментировать
Проблема определенно в автозагрузчике.
Он не учитывает при подключении файла пространство имен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы