将文件中的函数导入Symfony中的类控制器时出现问题
我想将我的函数handleParameters添加到我的AuthController中,但我希望找到一个类。。。从资源导入服务时。。。但是没有找到 HandleParameters.php将文件中的函数导入Symfony中的类控制器时出现问题,symfony,require-once,Symfony,Require Once,我想将我的函数handleParameters添加到我的AuthController中,但我希望找到一个类。。。从资源导入服务时。。。但是没有找到 HandleParameters.php <?php function handleParameters(array $aRequired, &$aRes, $requestMethod) {...} ?> AuthController.php <?php class AuthController extends
<?php
function handleParameters(array $aRequired, &$aRes, $requestMethod) {...}
?>
AuthController.php
<?php
class AuthController extends Controller
{
public function getAuth()
{
require_once (dirname(__DIR__, 1) .'/Common/HandleParameters.php');
handleParameters($aRequired, $this->aRes, $_SERVER['REQUEST_METHOD']);
...
}
}
默认情况下,所有php文件都必须是一个类,因此如果出现错误 期望找到一个类 这是因为HandleParameters.php不是类 你有两个解决方案 如果该函数特定于AuthController,则可以在控制器类中以与定义getAuth相同的方式定义它 否则:另一种方法是将特定的类MyService定义为服务,然后您可以将该服务注入到任何类的构造函数中,即您想要的控制器
您可以使用trait,例如: -在src/中创建工具/文件夹。 -在此文件夹中创建文件handleParameterStreat.php,名称必须以Trait结尾。 handleParameterStreat.php AuthController.php
<?php
class AuthController extends Controller
{
public function getAuth()
{
require_once (dirname(__DIR__, 1) .'/Common/HandleParameters.php');
handleParameters($aRequired, $this->aRes, $_SERVER['REQUEST_METHOD']);
...
}
}
消息来自autowire,默认情况下,autowire会尝试打开遇到的任何php文件并连接内部的类。只需将HandleParameters.php添加到config/services.yaml中的ignore部分。虽然脱离主题,但实际上没有理由在Symfony应用程序中执行您正在执行的操作。我正在学习Symfony,因此如果您有其他更好的解决方案,我愿意听取您的意见。我可以将handleParameters函数放入AuthController中,但因为它是其他webservices类的共享函数,所以我想将它分离到另一个文件中。谢谢你。我想到了,但我的厨师希望它是一个简单的php函数,所以我正在寻找解决方案。
<?php
namespace App\Controller;
use App\Tool\HandleParametersTrait;
class AuthController extends Controller
{
use HandleParametersTrait;
public function getAuth()
{
$this->handleParameters('hi');
...
}
}