Sinisa Janjetovic Ответов: 1

Проблема с пространствами имен Php во вложенных папках


У меня есть очень простое веб-приложение. Изучение использования пространств имен.

Структура каталогов такова:
ВСП (корень)
класс (каталог приложений)
index.php
оплата (подкаталог для пространства имен)
card.php (отдельный класс, пространство имен)
геймплей (подкаталог для пространства имен)
card.php (отдельный класс, пространство имен)


Код выглядит следующим образом:

index.php
<?php 
	function my_autoload_function($c)
	{
		require_once "class/".str_replace("\\","/",$c).".php";		
	}

	spl_autoload_register('my_autoload_function');

	$gpcard=new \gameplay\card;
	$gpcard->play();
?>



card.php (подпапка оплата)
<?php 
	namespace payment;
	class Card
	{
		public function pay()
		{
			echo "Plaćanje Visa karticom";
		}
	}
?>



card.php (подпапка геймплея)
<?php 
	namespace gameplay;
	class Card
	{
		public function play()
		{
			echo "Igra Dama crvena";
		}
	}
?>



Сообщения об ошибках, которые я получаю, являются:
1)
Цитата:
Предупреждение: require_once(class/gameplay/card.php): не удалось открыть поток: нет такого файла или каталога в C:\wamp64\www\class\index.php на линии 4

2)
Цитата:
Фатальная ошибка: require_once(): требуется неудачное открытие 'class/gameplay/card.php' (include_path='.;C:\php\pear') в C:\wamp64\www\class\index.php на линии 4



Может кто - нибудь помочь с этим?

Что я уже пробовал:

Я пробовал разные решения с путями, но безуспешно.

1 Ответов

Рейтинг:
1

ZurdoDev

require_once нуждается в правильном пути. Смотрите пример здесь, доктрина orm - PHP пространства имен в подпапках проекта - переполнение стека[^]


Sinisa Janjetovic

Спасибо за вашу помощь. Я знаю, что это была проблема с path. Решенный :-)

ZurdoDev

Рад это слышать.