PHP致命错误:使用具有名称空间的工厂模式找不到接口

jit*_*dra 4 php design-patterns interface

档案1 - /Users/jitendraojha/www/DesignPatternsWithPhpLanguage/FactoryPattern/FactoryClassPattern/UserInterface.php

<?php

namespace DesignPatternsWithPhpLanguage\FactoryPattern\FactoryClassPattern;

interface UserInterface
{

    function setFirstName($firstName);
    function getFirstName();
}

?>
Run Code Online (Sandbox Code Playgroud)

档案2 - /Users/jitendraojha/www/DesignPatternsWithPhpLanguage/FactoryPattern/FactoryClassPattern/User.php

<?php

namespace DesignPatternsWithPhpLanguage\FactoryPattern\FactoryClassPattern;


class User implements UserInterface
{

    private $firstName = null;

    public function __construct($params) {   }

    public function setFirstName($firstName)
    {

        $this->firstName = $firstName;
    }

    public function getFirstName()
    {

        return $this->firstName;
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

问题

php FactoryPattern/FactoryClassPattern/UserInterface.php - 运行正常.

php FactoryPattern/FactoryClassPattern/User.php- 给出以下错误:PHP致命错误:在第7行的/Users/jitendraojha/www/DesignPatternsWithPhpLanguage/FactoryPattern/FactoryClassPattern/User.php中找不到接口'DesignPatternsWithPhpLanguage\FactoryPattern\FactoryClassPattern\UserInterface'

use UserInterface;在文件2中添加了没有解决方案.

jas*_*604 6

所有你需要它包括,但更好的是你应该使用自动加载器

请参阅下面的示例以使用include进行快速测试,假设这两个文件位于同一目录中.

namespace DesignPatternsWithPhpLanguage\FactoryPattern\FactoryClassPattern;

include('UserInterface.php');

class User implements UserInterface
{

    private $firstName = null;

    public function __construct($params) {   }

    public function setFirstName($firstName)
    {

       $this->firstName = $firstName;
    }

    public function getFirstName()
    {

       return $this->firstName;
     }
Run Code Online (Sandbox Code Playgroud)

}

// Quick test will - output ===> John
$user = new User(null);
$user->setFirstName('John');
echo $user->getFirstName();
Run Code Online (Sandbox Code Playgroud)