如何在laravel框架中使用外部php类?

时间:2014-10-10 23:31:45

标签: codeigniter laravel laravel-4

我从Codeigniter切换到Laravel。在CI中,它易于用户使用外部库或类,只需将其放在application/libraries文件夹中,然后通过以下方式从控制器加载:

$this->load->library('libraryName')

现在,我想在Laravel做同样的事情。我用过这个场景:

  1. 在名为app的{​​{1}}文件夹中创建一个文件夹。
  2. 更改libraries(位于根目录中),如下所示:

    composer.json
  3. 从CMD运行命令"autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php", "app/libraries" // this was added ] },

  4. 我的班级看起来像这样:

    composer dump-autoload

    存储在名为class Messages{ function errorMessage(){//....} function successMessage(){//....} } 的文件中的类,该文件位于Messages.php文件夹中。

    我仍然有同样的错误:

      

    课程'消息'找不到

    问题是什么,解决方案是什么?

2 个答案:

答案 0 :(得分:4)

  1. 创建一个新文件夹:app / your-folder-name并将您的课程放在该文件夹中
  2. 在app / start
  3. 中打开globals.php文件
  4. 你应该看到这个:

    ClassLoader::addDirectories(array(
    
      app_path().'/commands',
      app_path().'/controllers',
      app_path().'/models',
      app_path().'/database/seeds',
    
    ));
    
  5. 将您的班级文件夹添加到此阵列

    app_path().'/your-folder-name'
    
  6. 可以在此处找到更多信息:Where do I put Laravel 4 helper functions that can display flash messages?

答案 1 :(得分:0)

使用自动加载类检查文件/vendor/composer/autoload_classmap.php 你的班级应该在那里。 如果是 - 请检查您的请求是否实际使用了作曲家自动加载?