Problem Help


项目有两个模块(admin, api), 怎么跨模块调用方法?

Asf_Loader::get('IndexLogic', 'admin')->getUser();
Asf_Loader::get('IndexLogic', 'api')->getUser();
Asf_Loader::get('IndexLogic')->getUser(); // 默认模块

config.php文件里默认有asf的配置,如果我想放一些mysql的配置,是不是可以写个跟asf并列的mysql参数?
那我在其它地方调用的时候是用什么方法?

$configs = array(
    'asf' => array(
        'root_path'  => MODULE_PATH,
    ),
    'mysql' => array(
        'dsn' => array('host' => '127.0.0.1', 'dbname' => 'test', 'port' => 6666),
        'username' => 'test',
        'password' => 'AbcdefRDvgedf',
    )
);

return $configs;

// box3.cn/phpasf/class/config/asf.abstractconfig.get.html

Dao层 谁调用的?

推进调用顺序: Services -> Logics -> Daos

config.php配置文件中已经配置了某个key, Asf_Config::get 取数组时AutoResponse为空?

AutoResponse 会判断如果输出值类型是 Object, 判断是非法的。
正确的做法: Asf_Config::get('key')->toArray()

library目录下的文件使用 Asf_Config::get('cookie')->toArray() 调用报错?

// call to a member function toArray() on  boolean ...
像这类问题, 是因为在配置文件中找不到变量key(cookie)

library目录下的文件, 只能使用 $cookie = new Cookie(); 这样调用吗?

这种方式是传统MVC调用方式。要多些很多代码才能实现单列;我们推荐请使用 Asf_Loader::get('cookie')

library目录下的文件什么时候被加载?

框架在绝对目录找不到文件时, 会去library目录下按路径规查找一次文件

如果我想用DB类的findAll方法,连数据库时只能用Asf_Db_Adapter_Mysql类去连,不能用Asf_Db::init?

答案是可以的 box3.cn/phpasf/class/db/asf.db.html

框架有cookie、session、file相关操作吗?

暂时不考虑对这些操作进行封装