2011-08-02 54 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沙箱,并且能够从同一个插件自动加载其他类。我认为旧的代码库已被黑了一下。 –