2016-07-29 55 views
1

我無法讓Drupal 8從相同的命名空間加載我的自定義模塊的類。這裏是我得到的:Drupal 8沒有添加我的模塊類到註冊表/自動加載

<?php 

namespace Drupal\sign_up\Form; 

use Drupal\Core\Form\FormBase; 
use Drupal\Core\Form\FormStateInterface; 
// ... snip ... 

class StandardForm extends CLESignUpForm 
{ 

哪一個在我的本地環境中工作得很好。當部署在服務器說:PHP致命錯誤:班 '的Drupal \ sign_up \表格\ CLESignUpForm' 不/path/to/drupal/modules/sign_up/src/Form/StandardForm.php找到第21行

如果我添加一行:

include 'CLESignupForm.php';

它工作得很好。但是這打破了自動加載類的目的,不是嗎? get_declared_classes()不顯示我的基類......或者甚至當前加載的類。

關於如何使這個特定的環境符合任何想法?我已經加載了數據庫和配置直接從我的本地設置它的工作。不知何故,它可能是一個PHP/Apache的設置?

+0

爲什麼不添加'use Drupal \ sign_up \ Form \ CLESignUpForm;'? –

+0

其實我認爲這是不必要的,如果他們共享命名空間?那肯定是一個設置的地方? –

+0

如果沒有你的幫助,PHP沒有辦法瞭解你的'CLESignupForm'類。所以你必須使用'include'語句直接使用'use'語句(首選)來依賴Drupal的[自動加載](https://www.drupal.org/node/2156625)功能。 –

回答

0

原來我是一個關節頭。 CLESignUpForm是該類型的不正確的大寫。正確的大寫是CLESignupForm。仍然不清楚爲什麼它在其他環境中都能正常工作,而不是這個,但這讓我覺得至少有一點理智。

相關問題