Phalcon 知识点备忘
phalcon 毕竟无法看到源代码,有些小设置还是需要实践记忆。
一、如何调用config.php里面的配置
很多时候,我们习惯将全局的配置参数放入主配置文件中,比如分页数、比如appkey之类。
'params' => array( //加入config.php中,那controller中如何调用呢
'limit' => 10,
)
想要在controller中调用,可以通过services.php
$di->set('main_config', $config); //将配置文件作为服务,放入di容器中
调用时:
echo $this->main_config->params['limit']; //controller中,是可以直接使用
echo $this->getDI()->get('main_config')->params['limit']; //model中,可以获取di后,使用。
另一种方案:配置写在 ControllerBase 的initialize() 里$this->settings = array('limit'=>10);// settings设置为类的成员变量。
二、数据库的字符类型
$di->set('db', function () use ($config) {
return new DbAdapter(array(
'host' => $config->database->host,
'username' => $config->database->username,
'password' => $config->database->password,
'dbname' => $config->database->dbname,
'charset' => 'utf8' //这边要自己添加,例子里面没有。
));
});
三、phalcon的model中,想运行sql语句
$sql = "select * from Users u where u.email = :email: and u.password = :password: and u.status = :status: limit 1";
$res = $this->getDI()->get('modelsManager')->executeQuery($sql,array( //或者:$this->getModelsManager()->executeQuery($sql);
'email' => $email,
'password' => $password,
'status' => self::normalstatus,
));
return $res->valid()?$res:array(); //对于select的是否成功判断
return $res->success()?$res:0; //对于insert、delete是否成功的判断,但对update无效,因为mysql本身问题,对update不报错
四、phalcon中严格区分大小写
很多时候兄弟们会发现,mac下运行的好好的,为什么一到真服linux下就出问题呢,原来mac下不区分大小写,Ubuntu下区分大小写
比如 MainTask handler class cannot be loaded ,就是因为mac下建的文件,maintask.php ,是小写。
2、解构技能,找出实现80%效果的那20%
3、不要一心二用
4、练习练习再练习!然后获得即时反馈
5、坚持,不要在低谷期放弃