Я не могу понять, почему мои классы не загружаются.Я использую Composer для автозагрузки PSR-4 и успешно его использую.Вот как я настраиваю свои классы:
/ project
/ classes
/ feeds
/ pull
/ factory
composer.json
testMyFactory.php
feeds / factory / FeedFactory.php
namespace MyClasses\Feeds\Factory;
interface FeedFactory
{
public function build($provider);
}
feeds / factory / PullFeedFactory.php
namespace MyClasses\Feeds\Factory;
use MyClasses\Feeds\Factory\FeedFactory;
use MyClasses\Feeds\Pull\Providers\One;
/**
* Class FeedFactory
*/
class PullFeedFactory implements FeedFactory
{
public function __construct(){}
/**
* Build provider object for factory
* @param string $provider Type of feed provider to return
* @return Object Provider object
*/
public function build($provider) {
switch ($provider) {
case 'one':
$provider = new One();
break;
default:
$provider = new One`();
break;
}
return $provider;
}
}
project / feeds / pull / One.php
namespace MyClasses\Feeds\Pull\Providers;
class One
{
public function pull() {
echo 'Pull One';
}
}
project / testMyFactory.php
require __DIR__ . '/vendor/autoload.php';
use MyClasses\Feeds\Factory\PullFeedFactory;
$feed = new PullFeedFactory();
$feed->build('one');
$feed->pull();
project / composer.json
{
"require": {
//Remove for example
},
"config": {
"preferred-install": "dist"
},
"require-dev": {
},
"autoload": {
"psr-4": {
"MyClasses\\": "./classes",
}
}
}
Это ошибка, которую я продолжаю получать Class 'MyClasses\Feeds\Factory\PullFeedFactory' not found in /var/www/html/testPullFactory.php on line xx
У меня естьдругие классы, которые работают в каталоге Classes с автозагрузкой, но по какой-то причине не могут заставить это работать.Я чувствую, что это что-то явно очевидное, но я застрял на этом часами.
ОБНОВЛЕНИЕ:
Обновлено, чтобы включить мой файл vendor / autoload.php.Стил получает ошибку, хотя теперь она другая Class 'MyClasses\Feeds\Pull\Providers\One' not found in /var/www/html/classes/Feeds/Factory/PullFeedFactory.php