[英]PHP Class not found using namespaces
我無法找出為什么我的課程無法加載。 我正在使用Composer進行psr-4自動加載,並已成功使用它。 這是我的班級設置方法:
/項目
/班
/提要
/拉
/廠
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;
}
}
項目/提要/拉/ One.php
namespace MyClasses\Feeds\Pull\Providers;
class One
{
public function pull() {
echo 'Pull One';
}
}
項目/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文件。 Stil出現錯誤,盡管現在有所不同,但Class 'MyClasses\\Feeds\\Pull\\Providers\\One' not found in /var/www/html/classes/Feeds/Factory/PullFeedFactory.php
在您的composer.json中,更改為
"autoload": {
"psr-4": {
"MyClasses\\": "classes/",
}
}
然后,執行composer dump-autoload
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.