1
我是新來的作曲家和自動加載機。我想我也缺乏文件組織策略。 我正在嘗試在slimframework上構建一個新項目。 我有一些Slim類。但我無法在我的項目中自動加載它們。使用Composer管理自己的類
/
- composer.json
- composer.phar
- 廠商
- 配置
- someapiparams.php
- database.php中
- cache.php
- general.php
- 公共
- 的index.php
- 車型
- 庫
- 富
- 修身
- CONFIG.PHP
- Cache.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 Slim\Slim();
var_dump(Config::get("database")); exit;
//var_dump(Foo\Slim\Config::get("database")); exit;
//var_dump(Slim\Config::get("database")); exit;
錯誤是沒有找到配置類。
沒錯。目前,類名是'\ Config',但文件的位置要求它被命名爲'\ Foo \ Slim \ Config'。添加一個名稱空間將有所幫助。 – Sven
我嘗試在json,目錄結構和Classnames等中結合了很多東西;我錯過了命名空間聲明。對我感到羞恥。謝謝。 – hctopcu
這個怎麼樣:https://gist.github.com/wilmoore/426304 – WebolizeR