2017-02-23 36 views
1

我有一個類叫做SeleniumUtility並試圖擴展PortalController(僅用於測試)。如何擴展在另一個目錄中的類?

enter image description here

我想它是這樣的:

<?php 
namespace App\Http\Utility; 

require_once(__DIR__.'/../Controllers/PortalController.php'); 

class SeleniumUtility extends PortalController 
{ 
... 

不過,我得到FatalErrorException in SeleniumUtility.php line 14: Class 'App\Http\Utility\PortalController' not found

所以還是會嘗試在Utilty文件夾進行搜索。

它是如何工作的?

+1

確保你的類名'PortalController.php'是'PortalController' –

+1

像你擴展(擴展類的名稱應該是相同的情況下),你的父類的名字。這個項目命名空間是基於什麼? –

+0

@B。德賽,是類名是'PortalController',我剛剛檢查過它 – Black

回答

3

如果你有一個自動加載,如PSR-4 autoloader,您可以實現use句法。

<?php 
namespace App\Http\Utility; 

use App\Http\Controllers\PortalContoller as PortalController; 

class SeleniumUtility extends PortalController 
{ 

...

+0

符合PSR-2的答案。 http://www.php-fig.org/psr/psr-2/#overview –

0

你需要這樣使用。

class SeleniumUtility extends \App\Http\Controllers\PortalController 
{ 

} 

use App\Http\Controllers\PortalController; 
class SeleniumUtility extends PortalController 
{ 

} 
+0

這應該是一條評論。沒有答案。 – Loko

+0

使用PSR-2格式。 http://www.php-fig.org/psr/psr-2/#overview –

1

根據您所使用的命名空間更改如下代碼:

namespace App\Http\Utility; 

require_once(__DIR__.'/../Controllers/PortalController.php'); 
use App\Http\Controllers as Controllers; 
class SeleniumUtility extends Controllers\PortalController 
{ 
+1

標準化PSR-2在這裏可能是件好事。 http://www.php-fig.org/psr/psr-2/#overview –

+1

如果他有一個自動加載器,他可能不需要'require_once'語句。 –

+0

是的,我不需要'require_once' – Black

相關問題