2016-11-14 91 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