【问题标题】:Loading custom php file in Laravel without composer dump-autoload在没有 composer dump-autoload 的情况下在 Laravel 中加载自定义 php 文件
【发布时间】:2017-03-28 06:04:18
【问题描述】:

我是 Laravel 的新手。我一直在关注如何在没有dump autoload 的情况下将自定义 php 库加载到 Laravel 4,2。到目前为止,我无法或我调用的函数不正确。

到目前为止我所拥有的是:

  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 页面时出现错误:

'找不到类'ImageResize''

这个错误是由于错误调用类和/或完全没有正确包含 Laravel 中的类而导致的错误吗?谁能帮我?

ps。我不能使用转储自动加载的原因是因为我只有 ftp 访问主机并且我没有 SSH...

【问题讨论】:

  • 如果你进入那个文件,类名是准确的ImageResize 并且没有命名空间吗?类的名称可能与文件不同。
  • 是的,文件的开头如下:class ImageResize { .... }

标签: php laravel


【解决方案1】:

您可以使用PSR-4 autoloading

使用PSR-0/PSR-4,您在添加或更新类时不必转储自动加载。

【讨论】:

  • PSR-4 需要 dump auotload 以便在 vendor/composer/autoload_psr4.php 中加载新文件,在你最后发送的视频中,他做到了..
【解决方案2】:

您可以像这样将命名空间添加到自动加载器:

$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'; 并将您的自定义命名空间添加到自动加载器。

【讨论】:

  • 抱歉,我应该在哪个文件中添加这个?
  • 您可以将其添加到bootstrap/autoload.php 或您的index.php。它需要在控制器之前加载的文件中
  • 我已将其添加到 index.php 中的 public 目录和 $app->run(); 之前 .. stil class not found 错误。
  • 对不起,我的回复晚了。我有点远。就一个问题。 'Path to directory' 在哪里我需要在那里添加完整路径吗?喜欢/var/wwwhtml/mysite/app/libraries/ImageResize.php
  • "path to directory" 是你的命名空间的基本目录的路径。您可以使用完整路径或相对路径。
猜你喜欢
  • 2014-10-14
  • 2014-03-26
  • 1970-01-01
  • 2013-12-14
  • 2015-02-14
  • 2013-06-15
  • 1970-01-01
  • 2018-06-06
  • 2020-07-13
相关资源
最近更新 更多