2013-07-31 78 views
1

我已經創建了一個定製的php幫助類用於我的Laravel 4項目。找不到Laravel定製幫助類

的SASHelper.php文件在app /庫/精靈/ SAS和添加庫到composer.json文件我已經做了作曲家dumpautoload之後。

autload_classmap(最後只行):

'elf\\sas\\SASHelper' => $baseDir . '/app/libraries/elf/sas/SASHelper.php', 

輔助類(簡化爲簡潔起見):

<?php 

namespace elf\sas; 

class SASHelper 
{ 
static public function SupportIntToText($status) 
{ 
     return 'Supported'; 
} 

static public function LicTypeToText($lic) 
{ 
     return '32-Bit'; 
} 
} 

當我試圖從我的控制器調用靜態方法:

$statustext = SASHelper::SupportIntToText($client->SupportStatus); 

此時的提琴手正在報告:
未找到210「類SASHelper」。

+0

你嘗試global.php?它不需要composer dump-autoload,並且很容易加載這個類 –

+0

我剛剛試過了:(app_path()。'/ libraries'和app_path()。'/ libraries/elf/sas')到ClassLoader :: addDirectories但它沒有任何區別。 – SteB

+0

嘗試評論命名空間行 –

回答

1

你嘗試global.php?它不需要作曲家dump-autoload,並輕鬆加載類 - 嘗試Tobemyself Rahul

我剛剛試過了:(app_path()。'/ libraries'和app_path()。'/ libraries/elf/sas')到ClassLoader :: addDirectories,但沒有任何區別。 - SteB

嘗試註釋命名空間的線 - 嘗試Tobemyself拉胡爾

@TryingTobemyselfRahul - 這工作(添加/庫/精靈/ SAS路徑)!如果你添加這個答案,我會接受,只是好奇,任何想法爲什麼它的工作(或爲什麼另一個沒有)? - SteB

最好的猜測是,當你使用它的命名空間僅適用於該命名空間,直接使用類名稱及其引發的錯誤,所以當。

所以要麼不使用命名空間或類名前加上命名空間,在您的示例$statustext = elf\sas\SASHelper::SupportIntToText($client->SupportStatus);這應該工作

4

如果你想使用的命名空間,不要忘記composer dump-autoload

你的情況:

1 - 你的文件夾\您的-file.php

<?php 
namespace elf\sas; 

class SASHelper{ 

static public function SupportIntToText($status){ 
     return 'Supported'; 
} 

static public function LicTypeToText($lic){ 
     return '32-Bit'; 
} 
} 

2 - 配置\ app.php

添加到您的別名

'SASHelper' => 'elf\sas\SASHelper' 

3 - 運行composer dump-autoload

+0

適用於我!坦克! –

1

表示您已在文件夾app/Http/xxx/yyy下創建了幾個類,並且希望自動加載它們。

  1. 將以下添加到作曲家。JSON:

    "autoload": {  
    "classmap": [  
         "database", 
         "app/Http/xxx/yyy" 
        ], 
    

    ... },

  2. 運行composer dump-autoload

  3. 檢查文件中的供應商/作曲家存在/ autoload_classmap.php