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 ,是小写。

1、以专家为榜样,不必自己重新探索
2、解构技能,找出实现80%效果的那20%
3、不要一心二用
4、练习练习再练习!然后获得即时反馈
5、坚持,不要在低谷期放弃
原文地址:https://www.cnblogs.com/zhongyuan/p/3822898.html