Я только начал копаться в концепции ООП PHP.Для этого я создал класс и интерфейс в одном файле.До этого момента все работает хорошо.Далее я начал рефакторинг своего кода и разделил класс и интерфейс на соответствующие файлы.После этого я получаю сообщение об ошибке ниже:
Неустранимая ошибка: интерфейс 'TaskInterface' не найден в E: \ www \ project \ oop \ Tasks.php в строке 4
Ниже строка решает эту ошибку, однако мне нужен способ ее устранения с помощью Composer и Namespace.
require 'TaskInterface.php';
Оба файла находятся на одном уровне каталогов.
Задачи класса: (Задачи.php)
use App\TaskInterface;
require_once 'vendor/autoload.php';
class Tasks implements TaskInterface {
public function create()
{
var_dump('created');
}
}
$obj = new Tasks();
echo $obj->create();
Задача интерфейса: (TaskInterface.php)
namespace App;
interface TaskInterface {
public function create();
}
Вот код composer.json для автозагрузки класса / интерфейса:
{
"name" : "OOP",
"autoload": {
"psr-4": {
"App\\": "project/oop/"
}
}
}
URL проекта: http://localhost/project/oop/tasks.php
Структура каталогов:
|project
|oop
-|vendor
-|composer (containing all auto generated files)
-|autoload.php
-|composer.json
-|TaskInterface.php
-|Tasks.php