我是作曲家和自动加载器的新手。我想我也缺乏文件组织策略。我正在尝试在slimframework上建立一个新项目。我有一些课程给斯利姆。但是我无法在我的项目中自动加载它们。
/
- 作曲家.json
- 作曲家
- 供应商
- 配置
- 某亚皮帕拉姆斯.php
- 数据库.php
- 缓存.php
- 一般.php
- 公共
- 索引.php
- 模型
- 图书馆
- 傅
- 苗条
- 配置.php
- 缓存.php
/composer.json:
"autoload": {
"psr-0": {
"Foo": "libraries/"
}
}
/libraries/Foo/Slim/Config.php:
<?php
class Config {
/**
* Loads a file based on $key param under ROOT . "/config",
* if not already loaded.
* Then returns an array.
*/
public static function get($key) {}
}
/libraries/Foo/Slim/Cache.php:
<?php
class Cache{
/**
* Initialize a caching engine defined in config file if not already done.
* Then runs corrensponding engine methods for getting and setting.
*/
public static function init() {
$config = Config::get("cache");
// initialize driver.
}
public static function __get($key) {}
public static function __set($key, $value, $params) {}
}
/public/index.php:
require ROOT."/vendor/autoload.php";
$app = new SlimSlim();
var_dump(Config::get("database")); exit;
//var_dump(FooSlimConfig::get("database")); exit;
//var_dump(SlimConfig::get("database")); exit;
错误是找不到配置类。
你忘了把:
namespace Foo/Slim;
在/libraries/Foo/Slim/Cache.php 的顶部(或者可能已经为代码示例截取了它)。
如果添加命名空间无法修复它,则应使用调试器单步执行代码,并在 Composer 自动加载器尝试加载类并失败时准确查看它正在搜索的文件。