phalcon 框架执行流程图
phalcon 框架执行流程图
…
记录-交流-Web开发知识分享
phalcon 框架执行流程图
…
php phalcon框架数据库连接改为长连接后,压力测试插入性能极提升3倍多
<?php
// Create a connection with PDO options
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql(
[
"host" => "localhost",
"username" => "root",
"password" => "sigma",
"dbname" => "test_db",
"options" => [ //这里加上此附加参数
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
… 某些情况下,我们除了提供web界面给用户,还需要运行一些后台任务。这些任务可能是由用户触发的(比如用户提交了一个请求,而这种请求很特殊,例如从github克隆一个项目并执行构建,至少需要几分钟才能执行完成,这种情况不适合阻塞的方式让浏览器等待结果返回);也可能是一些常规性的系统任务(比如将日志进行归档,转移到统一的地方进行备份)。前者一般是引入消息队列,用户的请求只是增加了一条待构建的消息到消息队列,然后有一个专门的订阅者读取消息,调度分发执行这个任务。后者最简单的方式便是crontab,但缺点是每个机器需要单独进行设置,不易维护;当然也可以通过一个统一的调度器,分发任务到多个任务节点的方式来执行。…
Phalcon 中在Controller和Model中的初始化方法容易比较混淆的有initialize() 和 onConstruct();
值得注意的是initialize() 在控制器的一次request只会执行一次, 在Model中也是只会执行一次.
因此在控制器Controller1中执行initialize()后, 后面的代码再次使用new Controller1(), 或者再调用new Controller2()是不会执行Controller1或Controller2中的initialize方法的.…
<?php
class BaseModel extends \Phalcon\Mvc\Model {
public function getSource()
{
return 'v1'.strtolower(get_class($this));
}
}
新建一个基础模型,然后所有的模型在该类上继承即可,原文中的小写函数书写错误,应该是strtolower
2x版本的时候的,可以在控制器中控制输入html格式的内容:
$this->flashSession->success('<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>操作成功');
//view输出
<?=$this->flashSession->output();?>
… Phalcon\Mvc\Model\Criteria
对象query()
将返回 Phalcon\Mvc\Model\Criteria
对象
$robots = Robots::query()
->where('type = :type:')
->andWhere('year < 2000')
->bind(['type' => 'mechanical'])
->limit(5, 10)
->orderBy(
Phalcon\Validation\Validator\Alnum
#只能包含字母、数字、字符
Phalcon\Validation\Validator\Alpha
#只能包含字母
Phalcon\Validation\Validator\Between
#介于二者之间,minimum<=x<=maximum
#示例
validator->add('name', new Between(array(
'minimum' => 0,
'maximum' => 100,
'message' => 'The price must be between 0 and 100'
)));
Phalcon\Validation\Validator\Confirmation
#检测二个值必须一样
#示例
$validator->add('password', new Confirmation(array(
'message' => 'Password doesn\'t match confirmation',
…
1
2
3
4
5
6
7
|
<?php $model = new model(); if ( $model -> create( $data )) { $insertId = $model -> getWriteConnection() -> lastInsertId( $model -> getSource()); } ?> |
是的没错,就是如此的简单!
还可以在简单一点!
1
2
3
4
5
6 |
phalcon没有像yii那些框架一样内置trace工具,所以我们只能自己搞。
在phalcon里有一个\Phalcon\Db\Profiler 类,这个类可以用来记录sql语句并计算消耗的时间。
那么如何使用它呢?
手册里其实已经提供了方法,总结如下:…
近期评论