【问题标题】:Laravel include a library that uses autoload.phpLaravel 包含一个使用 autoload.php 的库
【发布时间】:2012-10-21 21:23:30
【问题描述】:

我正在尝试在我的家庭控制器中使用Faker 库,但我不知道如何包含它。图书馆的文档使用这个:

require_once '/path/to/Faker/src/autoload.php';
$faker = Faker\Factory::create();

但是Laravel有不同的方式loading classes,但是我没有找到这样的库的例子。

那我该怎么做呢?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我猜你是用 composer 添加的? 我使用了一个带有 composer (Imagine) 安装程序的库,我想使用 composer 加载脚本,所以我在 start.php 中执行了此操作:

    // Composer package
    require_once  $GLOBALS['laravel_paths']['base'] . 'vendor' . DS . 'autoload.php';
    

    【讨论】:

      【解决方案2】:

      你应该看看Registering a namespace,它应该能满足你的需要。 Faker 遵循 PSR0 命名空间标准,因此您需要告诉 laravel 如何找到这些文件。在您的 application/start.php 文件中放置这些指令:

      Autoloader::namespaces(array(
          'Faker' => path('libraries').'path/to/Faker/src/Faker',
      ));
      

      希望有帮助!

      编辑:

      此外,我意识到如果将 src/Faker 文件夹作为 application/libraries/Faker 移动到 application/libraries,它应该会自动加载。

      【讨论】:

      • 几个问题。您的“移至库”建议不起作用(我得到 Class 'Faker\Factory' not found)。你的第一个也不起作用(至少我认为是这样),它给了我你需要使用 date.timezone...
      • 关于 date.timezone 错误检查stackoverflow.com/questions/8704522/… 关于其他问题,如果我今天有时间我会尝试自己安装 Faker。
      • 好吧,我使用库方法完成了这项工作。请参阅github.com/Kindari/faker/commit/… - 这是 laravel 的全新克隆,最新的 faker 已移入库。不需要其他配置。 application/routes.php 显示使用情况。
      猜你喜欢
      • 1970-01-01
      • 2019-07-04
      • 2015-08-21
      • 2014-12-01
      • 2012-04-02
      • 2019-07-18
      • 2019-08-28
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多