2011-08-02 7 views
1

私はSymfony 1.1のコードベースで作業しており、いくつかのプロセスを自動化するタスクを含むプラグインを作成しようとしています。symfonyのタスクからクラスをオートロードする

現在、私はタスクの中で、Symfonyがクラスのオートローディングを完全にブートストラップしていないことを発見しています。 sfCoreAutoloadクラスを登録しているようですが、同じプラグインまたは他のプラグインから他のクラスを自動ロードできません。

/project 
    /plugin 
    /myPlugin 
     /lib 
     /class 
      myClass.class.php 
     /task 
      myTask.class.php 

タスクの負荷罰金が、このセットアップでのautoload myClassすることができません:

のディレクトリ構造が似ています。通常、ファイルはrequireになりますが、myClassは利用可能な別のプラグインに依存しています。

Symfony CLIは、Webアプリケーションの場合と同様に、現在実行しているアプリケーションの残りの部分に対してオートロードを登録しないことは混乱しているようです。

+0

あなたは見たことがありますか:http://www.symfony-project.org/book/1_1/19-Mastering-Symfony-s-Configuration-Files#chapter_19_extending_the_autoloading_feature? – Tom

答えて

1

あなたは、Symfonyタスクのいくつかの面倒な側面の1つに遭遇しました。

の代わりにexecuteに何をしていてもかまいません。私はすべてのタスクのconfigureメソッドがすべてのタスクの実行に呼び出されると信じています。

+0

チップをありがとう。現在、 'execute'でオートローダーを手動でセットアップすることで、この問題を解決しました。 –

+0

'execute'で' myClass'にアクセスできるはずです。あなたができなければ、ファンキーなことが続いています。 –

+0

あなたは間違いなし!私は新鮮なSymfony 1.1サンドボックスを生成し、同じプラグインから他のクラスを自動ロードすることができました。私は古いコードベースがちょっとハッキングされていると思う。 –

関連する問題