将文件中的函数导入Symfony中的类控制器时出现问题

将文件中的函数导入Symfony中的类控制器时出现问题,symfony,require-once,Symfony,Require Once,我想将我的函数handleParameters添加到我的AuthController中,但我希望找到一个类。。。从资源导入服务时。。。但是没有找到 HandleParameters.php <?php function handleParameters(array $aRequired, &$aRes, $requestMethod) {...} ?> AuthController.php <?php class AuthController extends

我想将我的函数handleParameters添加到我的AuthController中,但我希望找到一个类。。。从资源导入服务时。。。但是没有找到

HandleParameters.php

<?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');
     ...
   }
}