是否有必要在 php 上包含超类?
Is it necessary to include superclasses on php?
我创建了两个 classes
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>';
}
}
它 returns 给我一个错误,除非我取消注释 include 'classepai.php';
然后我从 Laravel(php 框架)class
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{...}
我的问题是 HttpKernel
如何在不包含的情况下进行扩展。
HttpKernel
在 composer.json
中是必需的,在代码中使用 autoload.php
包含它。这就是为什么您不需要手动包含 HttpKernel
的原因。如果你想在 classeapi
上做同样的事情,你应该使用 namespace
和文件夹位置将它添加到 composer.json
autoload
.psr-4
部分。
示例:
{
"autoload": {
"psr-4": {
"App\": "app/",
"Pai\": "packages/pai/src",
}
}
}
然后 运行 命令 composer dump-autoload
你就可以像这样使用你的 classeapi
了:Pai\classeapi
我创建了两个 classes
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>';
}
}
它 returns 给我一个错误,除非我取消注释 include 'classepai.php';
然后我从 Laravel(php 框架)class
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{...}
我的问题是 HttpKernel
如何在不包含的情况下进行扩展。
HttpKernel
在 composer.json
中是必需的,在代码中使用 autoload.php
包含它。这就是为什么您不需要手动包含 HttpKernel
的原因。如果你想在 classeapi
上做同样的事情,你应该使用 namespace
和文件夹位置将它添加到 composer.json
autoload
.psr-4
部分。
示例:
{
"autoload": {
"psr-4": {
"App\": "app/",
"Pai\": "packages/pai/src",
}
}
}
然后 运行 命令 composer dump-autoload
你就可以像这样使用你的 classeapi
了:Pai\classeapi