2011-10-06 36 views
0

我有一個symfony 1.4應用程序,其中有一些類用於連接存儲在apps/appname/lib中的SOAP Web服務。當我嘗試訪問sfConfig類來獲取我在app.yml中設置的一些變量時,由於應用程序不會將sfConfig::get('app_myvar')識別爲在類上調用的方法,因此會引發錯誤。訪問app/appname/lib中的sfConfig類

如何使sfConfig類可用於我的apps/appname/lib目錄中的類?

這是我得到

Parse error: syntax error, unexpected '(', expecting ',' or ';' in /Users/my/Sites/mySite/apps/frontend/lib/mySOAP.class.php on line 9 

這裏的錯誤是我班上的第一名:

class mySOAP extends SoapClient { 
    protected $client = null; 
    protected $soapUrl = sfConfig::get('app_my_url'); 
    protected $options = array(
    'trace'    => 1, 
    'exceptions'  => 1, 
    'soap_version'  => SOAP_1_2, 
    //'encoding'   => 'ISO-8859-1', 
    'features'   => SOAP_SINGLE_ELEMENT_ARRAYS 

9號線是

protected $soapUrl = sfConfig::get('app_my_url'); 

回答

1

sfConfig類加載當Symfony堆棧被'啓動'時自動執行。因此,無論是通過index.php(或任何其他前端控制器)或CLI,您都應該可以訪問sfConfig

所以我最好的猜測是你要麼沒有成功地設置Symfony堆棧(儘管這應該會在早期階段拋出其他錯誤),或者你試圖從Symfony以外的腳本訪問app.yml?在後一種情況下,您可以啓動Symfony或包含sfYaml解析器並自行解析app.yml

+0

我的應用程序的堆棧跟蹤顯示我正在加載Symfony堆棧。我想我需要找到一種方法在我的類聲明中添加一個接口,以便它可以訪問sfConfig類。現在,我的自定義類只是擴展了股票PHP SoapClient類 – CamelBlues

+0

sfConfig是Symfony中的少數幾個全局類之一。一旦啓動,您應該可以訪問它。你能否用一些代碼示例(你調用它的函數)來擴展你的問題,以及一個精確的錯誤信息? –

+0

我剛剛發佈了我的錯誤消息,在一個月後重新開始工作。無論如何,從錯誤判斷,我希望這是愚蠢的,我正在做:) – CamelBlues