2017-04-07 10 views
0

私はdrupal 8でモジュールを作成します。 外部クラスファイルでクラスを使用します。ファイル名とクラス名を持つdrupal 8モジュールの外部クラスを使用

ファイル名:drupal.php

クラス名:クラスニューマン{...} drupal.phpで

:私のcontollerで

<?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(), 
          ]; 
    } 
} 

エラー:Drupalでクラス 'Drupal \ mymodulename \ Controller \ newman'が見つかりませんでした...

どうすれば修正できますか?

答えて

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(); 

希望それを使用問題
ansとしてマークするのを忘れないでくださいこれがあなたの問題を解決した場合にはおかげさまです。
幸運

0

Drupal.phpファイルでは、Newman.php(Coding standards)に名前を変更する必要があります。ここで閉じる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(), 
    ]; 
    } 
} 
関連する問題