我在drupal 8中创建了一个模块。 我想在外部类文件中使用一个类。
文件名:drupal.php
班级名称:班级纽曼{...}
在drupal.php中:
<?php
namespace Drupal\mymodulename\lib;
class newman{
public function new(){
$dp = 'TEST';
return $dp;
}
}
?>
在我的控制器中:
<?php
namespace Drupal\mymodulename\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\mymodulename\lib\drupal;
class mmController extends ControllerBase {
public function man() {
$this->man=new newman();
$build['test'] = [
'#markup' => $man->new(),
];
}
}
错误:Class&#39; Drupal \ mymodulename \ Controller \ newman&#39;在Drupal中找不到...
我该如何解决?
答案 0 :(得分:0)
将您的类文件创建为字段插件
moduleName/src/Plugin/Field/FieldFormatter/NewMan.php
文件名和类名应该相同
<?php
namespace Drupal\moduleName\Plugin\Field\FieldFormatter;
class NewMan {
//class content
}
然后在任何地方使用它
//include file
use Drupal\moduleName\Plugin\Field\FieldFormatter\NewMan;
// use
$newMan =new NewMan();
希望这能解决你的问题 如果这可以解决您的问题,请不要忘记标记为答案 祝你好运
答案 1 :(得分:0)
在drupal.php文件中,该文件应重命名为Newman.php(编码标准),同时在此处删除关闭的PHP标记。
<?php
namespace Drupal\mymodulename\lib;
class Newman {
public function new(){
$dp = 'TEST';
return $dp;
}
}
在您的控制器中
<?php
namespace Drupal\mymodulename\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\mymodulename\lib\Newman;
class mmController extends ControllerBase {
public function man() {
$man = new Newman();
$build['test'] = [
'#markup' => $man->new(),
];
}
}