Silex自动加载我的命名空间

时间:2015-11-15 01:06:47

标签: php composer-php autoload silex

该网站正在使用Silex。

结构如下:

root
  api
    RSYWX
      Book.php
  vendor
  views
  web

Book.php

namespace RSYWX;

class Book {
  public static function sayHello() 
  {
      return "Hello, there!";
  }
}

composer.json

{
  "require": {
    "silex/silex": "~1.1",
    "twig/twig": "^1.23",
    "doctrine/dbal": "~2.2",
    "symfony/var-dumper": "^2.7"
  },
  "autoload": {
    "psr-4": {
        "RSYWX\\": "/api/RSYWX"
      }
  }
}

我运行composer update来更新自动加载相关文件,特别是 vendor/composer/autoload_psr4.php

return array( 
  ...
  'RSYWX\\' => array('/api/RSYWX'), 
  ...

当我尝试从sayHello文件中调用index.php时,错误日志中包含以下行:

PHP Fatal error:  Class 'RSYWX\\Book' not found in vagrant/api.rsywx.com/web/index.php on line 32

加载此类和静态方法的任何提示?

1 个答案:

答案 0 :(得分:2)

尝试:

"RSYWX\\": "api/RSYWX"

因为在开头使用/是指服务器的根目录,它可能不是你想要的。当然,在更改composer update文件后调用composer.json