简体   繁体   中英

Loading custom php file in Laravel without composer dump-autoload

I'm new in Laravel. I've been followed few threads of how to load custom php library to Laravel 4,2 without dump autoload . So far I'm unable or I calling the function incorrect.

What I have so far is:

  1. I file autoload_classmap.php I've added my class

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

  2. In file autoload_static.php I've added

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

Then in my controller in the function where I want to be shown this class I've tried like this

public function upload() {

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

Result is when I try to load /upload page I've got error:

'Class 'ImageResize' not found'

Is this error from wrong calling the class and/or error from not include correctly the class in Laravel at all? Can anyone help me?

ps. The reason I can't use dump autoload is because I have only ftp access to the host and I don't have SSH...

You can add your namespace to the autoloader like this :

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

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


The code needs to be added in the bootstrap.php file : you need to extend the base autoloader which is loaded with this line : require __DIR__.'/../vendor/autoload.php';

replace this line with $loader = require __DIR__.'/../vendor/autoload.php'; and add your custom namespace to the autoloader.

You can use PSR-4 autoloading .

With PSR-0/PSR-4 , you don't have to dump-autoload when you add or update a class.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM