【问题标题】:Namespace, class not loading命名空间,类未加载
【发布时间】:2014-10-10 07:41:57
【问题描述】:

我是命名空间的新手。使用 laravel。

我的文件夹结构是

 app
   -lib
     -Services
         -Users
            -UserCreator.php
   -controllers
     -SiteController.php
 composer.json

我的问题是每次我尝试加载它时都会显示Class Services/Users/UserCreator does not exist。

UserCreator.php:

 <?php

 namespace Services\Users;

 class UserCreator {

 }

站点控制器.php

 <?php

 use Services\Users\UserCreator;

 // more code here...

 if ($validator->fails()) {
        echo 'fail';
    } else {
        $userCreator = App::make('Services/Users/UserCreator');
        if ($userCreator::create(Input::all())) {
            return Redirect::to('/')->with('message', 'Account Created');
        } else {
            return Redirect::to('/error');
        }
    }
  }

作曲家.json

 "autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ],
    "psr-4": {
        "Services\\Users\\": "app/lib/Services/Users/UserCreator"
    }
}

我只包含了我认为您需要的内容。需要帮助请叫我。谢谢!

【问题讨论】:

    标签: laravel namespaces composer-php


    【解决方案1】:

    在您的 composer.json 中将 psr-4 部分更改为此

    "psr-4": {
        "Services\\": "app/lib/Services"
    }
    

    也要改

    $userCreator = App::make('Services/Users/UserCreator');
    

    到

    $userCreator = App::make('Services\Users\UserCreator');
                                      ^     ^
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-23
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多