是否有必要在PHP上包含超类?

时间:2017-02-06 04:53:28

标签: php laravel inheritance include superclass

我创建了两个类

teste.php

<?php

namespace Projeto;

use Pai\classepai;
//include 'classepai.php';

class teste extends classePai
{
    public function __construct()
    {
        echo 'classe teste<br>';
    }
}

classepai.php

<?php

namespace Pai;


class classepai
{
    public function __construct()
    {
        echo 'classe pai<br>';
    }
}

它会返回一个错误,除非我取消注释include 'classepai.php';

然后我从Laravel(php framework)

获得了这个类
<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{...}

我的问题是HttpKernel如何在没有包含的情况下延长。

1 个答案:

答案 0 :(得分:0)

HttpKernel中需要{p> composer.json,并且使用autoload.php包含在代码中。这就是您不需要手动添加HttpKernel的原因。如果您想在classeapi上执行此操作,则应使用composer.json和文件夹位置将其添加到autoload psr-4namespace部分。

示例:

{
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Pai\\": "packages/pai/src",
        }
    }
}

然后运行命令composer dump-autoload,您就可以像classeapi一样使用Pai\classeapi