3

私はZendPHPプロジェクトに取り組んでおり、コードを「カスタム」などのカスタムライブラリに分離しようとしています。現在、これは主にいくつかのカスタムフォームで構成されています。

私のフォルダ構造は次のとおりです。

/project root
 /Library
  /Custom
    /Forms
      /Account
        /Login.php
      Base.php
  /Zend
  ...

Login.phpとBase.phpには、次の命名規則があります。

class Custom_Form_Account_Login extends Custom_Form_Base
{

}

class Custom_Form_Base extends Zend_Form
{

}

最後に、application.iniファイルに次の行を配置しました

autoloaderNamespaces[] = "Custom_"

次に、フォームを作成するために、これをコントローラーに入れます...

$form    = new Custom_Form_Account_Login();

ただし、ページをロードすると、Custom_Form_Account_Loginが見つからないというエラーが表示されます。インクルードパスが表示され、「/ projectroot / Library」がそこにあることがわかります。そのため、クラスが見つからない理由について少し混乱しています。

application.iniでさまざまな行を試しましたが、変更を加えたときにサーバーを再起動しましたが、エラーは引き続き発生します。

私が試した他の行は次のとおりです。

autoloadernamespaces[] = "Custom_" //All lowercase
autoloaderNamespaces[] = "Custom"  //Without the underscore
autoloaderNamespaces.custom = "Custom_"
autoloaderNamespaces.0 = "Custom_"

前述のように、私はZend1.12を使用しています。理想的には、これを.iniファイルで構成したいと思います。

4

1 に答える 1

5

フォルダ名はForms(複数形)ですが、クラス名はForm(単数形)を使用しています。あなたが説明している文脈では、これらは同じである必要があります。Form(単数)は、ZF構造を反映しているため、おそらく優れています。

于 2013-01-06T14:07:50.597 に答える