2016-07-29 5 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()は、私の基本クラス..または現時点ではロードされているクラスを表示しません。

この特定の環境をどうやって作成するかについてのご意見はありますか?私はすでにdbとconfigをロードしています。ローカルの設定から直接動作しています。何とかPHP/Apache設定にすることができますか?

+0

'Drupal \ sign_up \ Form \ CLESignUpForm;を使用してください。 –

+0

実際に名前空間を共有するのは不必要だと思いましたか?それはどこかの設定でなければなりませんか? –

+0

PHPがあなたの助けを借りずに 'CLESignupForm'クラスについて知る方法はありません。したがって、直接 'include'文を使うか、Drupalの[autoloading](https://www.drupal.org/node/2156625)の機能に' use'文(推奨)を使って依存する必要があります。 –

答えて

0

私はナックルヘッドです。 CLESignUpFormは、型の間違った大文字化です。正しい大文字はCLESignupFormです。まだそれが他のあらゆる環境で動作する理由は明らかではありませんが、少なくともこれ以上の正気性があるように感じます。

関連する問題