如何包含class?
How to include class?
handlers/
handler.php
src/
Model.php
我正在尝试包含 class
Model.php
<?php
declare(strict_types=1);
namespace App;
class Model{
}
handler.php
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/src/Model.php');
$model=new Model();
我收到一个错误:
Class 'Model' not found
是不是因为我用的是composer autoloader?
"autoload": {
"psr-4": {
"App\": ["src/"]
}
},
Model.php
<?php
declare(strict_types=1);
namespace src;
class Model{}
Handler.php
<?php
use src\Model;
require __DIR__ . '../vendor/autoload.php'; // or whatever to route is to your autoload file
$model=new Model();
我最后想提的是,自动加载文件中指定的目录理想情况下应该是包含所有 classes 的文件夹。除此之外,命名空间应该是 class 所在目录中的子目录。所以假设你有文件夹 Classes
,然后 src
可能在它下面,你会做:
"autoload": {
"psr-4": {
"": "Classes/"
}
},
namespace src;
如果您的 class 在 src
文件夹中,此方法有效。如果您添加了 src
的子文件夹,其中包含您的 class:
namespace src\subfolder;
好的,我找到了解决方案。您需要连接 autoload.php
<?php
require_once __DIR__.'/../vendor/autoload.php';
use App\Model;
$s=new Model();
handlers/
handler.php
src/
Model.php
我正在尝试包含 class Model.php
<?php
declare(strict_types=1);
namespace App;
class Model{
}
handler.php
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/src/Model.php');
$model=new Model();
我收到一个错误:
Class 'Model' not found
是不是因为我用的是composer autoloader?
"autoload": {
"psr-4": {
"App\": ["src/"]
}
},
Model.php
<?php
declare(strict_types=1);
namespace src;
class Model{}
Handler.php
<?php
use src\Model;
require __DIR__ . '../vendor/autoload.php'; // or whatever to route is to your autoload file
$model=new Model();
我最后想提的是,自动加载文件中指定的目录理想情况下应该是包含所有 classes 的文件夹。除此之外,命名空间应该是 class 所在目录中的子目录。所以假设你有文件夹 Classes
,然后 src
可能在它下面,你会做:
"autoload": {
"psr-4": {
"": "Classes/"
}
},
namespace src;
如果您的 class 在 src
文件夹中,此方法有效。如果您添加了 src
的子文件夹,其中包含您的 class:
namespace src\subfolder;
好的,我找到了解决方案。您需要连接 autoload.php
<?php
require_once __DIR__.'/../vendor/autoload.php';
use App\Model;
$s=new Model();