2011-08-02 73 views
1

我正在使用Symfony 1.1代碼庫並試圖編寫一個包含將自動執行某些過程的任務的插件。從Symfony自動加載類任務

目前我發現在任務內部,Symfony並沒有完全引導類自動加載。它似乎註冊了sfCoreAutoload類,但我無法從同一個插件或其他插件自動加載其他類。

目錄結構類似於:

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

任務負載罰款,但在此設置無法自動加載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任務中令人討厭的幾個方面之一。

如果你可以把你在execute而不是configure所做的任何事情,你應該沒問題。我相信每個任務的執行過程都會調用每個任務的configure方法,因此無論如何您都不希望任何重任。

+0

感謝您的提示。目前通過在'execute'中手動設置自動加載器來解決問題。 –

+0

你應該能夠訪問'execute'中的'myClass'。如果你不能,還有其他的事情正在發生。 –

+0

你是完全正確的!我生成了一個新的Symfony 1.1沙箱,並且能夠從同一個插件自動加載其他類。我認爲舊的代碼庫已被黑了一下。 –