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

问题描述 投票:-2回答:2

我想将我的函数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']);
     ...
   }
}
symfony require-once
2个回答
0
投票

默认情况下,您所有的php文件都必须是一个类,因此,如果出现错误

“预期要上课”

是因为您的HandleParameters.php不是课程

您有两个解决方案。

  • 如果函数特定于您的AuthController,您可以按照定义getAuth()的相同方式在控制器类中对其进行定义。

  • 否则:另一种方法是将特定的class MyService定义为服务,然后可以将该服务注入到任何类的构造器中,即所需的控制器。

您可以使用特征,例如:-在src /

中创建一个Tool /
文件夹。-在此文件夹中创建文件HandleParametersTrait.php,名称必须以Trait结尾。HandleParametersTrait.php
<?php

namespace App\Tool;

trait HandleParametersTrait {
  public function handleParameters($message) {
    echo $message;
  }
}

AuthController.php

<?php

namespace App\Controller;

use App\Tool\HandleParametersTrait;

class AuthController extends Controller 
{
   use HandleParametersTrait;

   public function getAuth() 
   {
     $this->handleParameters('hi');
     ...
   }
}

0
投票

您可以使用特征,例如:-在src /

© www.soinside.com 2019 - 2024. All rights reserved.