2016-11-14 126 views
9

我是Laravel新。我一直關注如何將自定義php庫加載到Laravel 4,2而沒有dump autoload的幾個線程。到目前爲止,我無法或我調用該功能不正確。加載自定義php文件在Laravel沒有作曲家轉儲自動加載

我至今是:

  1. 我提交autoload_classmap.php我已經添加了我的課

    'ImageResize' => $baseDir . '/app/libraries/ImageResize.php',

  2. 在文件autoload_static.php我已經添加

    'ImageResize' => __DIR__ . '/../..' . '/app/libraries/ImageResize.php',

,我在我想要的功能控制器

然後顯示在這個類我已經試過這樣

public function upload() { 

$FmyFunction1 = new \ImageResize(); 
    return View::make('site.admin.upload', [ 
     'FmyFunction1' => $FmyFunction1 
    ]); 
} 

結果是,當我嘗試加載/upload頁我有錯誤:

'Class 'ImageResize' not found'

這個錯誤是由於調用類的錯誤和/或錯誤從Laravel中不包括正確類嗎?誰能幫我?

ps。我不能使用dump autoload的原因是因爲我只有ftp訪問主機,我沒有SSH ...

+0

如果進入該文件,類名是否爲「ImageResize」,並且沒有名稱空間?有可能課程的名稱與文件不同。 – user3158900

+0

是的,文件開始是這樣的:'class ImageResize {....}' – Jane

回答

8

您可以將命名空間添加到磁帶自動加載這樣的:

$loader = require 'vendor/autoload.php'; 
$loader->add('NameSpace', 'Path to directory'); // PSR-0 loading 
$loader->addPsr4('NameSpace\\', 'Path to directory'); // PSR-4 loading 

文檔:https://getcomposer.org/apidoc/1.0.0/Composer/Autoload/ClassLoader.html#method_add


需要在bootstrap.php中文件的添加碼:需要延長其裝入該線與基底自動裝載機:require __DIR__.'/../vendor/autoload.php';

將此行替換爲$loader = require __DIR__.'/../vendor/autoload.php';並將您的自定義名稱空間添加到自動加載器。

+0

對不起,但我應該在哪個文件中添加這個? – Jane

+0

你可以將它添加到'bootstrap/autoload.php'或你的'index.php'中。它需要在你的控制器之前加載的文件 –

+0

我已經將它添加到'public.dir'中的'index.php'並且在'$ app-> run();'.. stil類未找到錯誤之前。 – Jane

-1

您可以使用PSR-4 autoloading

隨着PSR-0/PSR-4,你沒有當您添加到翻鬥自動加載或更新類

+0

PSR-4需要dump auotload爲了加載'vendor/composer/autoload_psr4.php'中的新文件另外在視頻中你發送結束他做到了.. – Jane