rust translation
Mutability, 改变某个事物的能力,在Rust中的表现与其他语言有所不同。第一个方面就是没有默认状态:
1 | let x = 5; |
我们可以通过mut
关键字来声明:
1 | let mut x = 5; |
这是一个可变的变量绑定。当绑定是可变的时候,意味着你可以改变此绑定。所以在上面的例子中,x
可以从一个值变为另一个值。
如果你想
Mutability, 改变某个事物的能力,在Rust中的表现与其他语言有所不同。第一个方面就是没有默认状态:
1 | let x = 5; |
我们可以通过mut
关键字来声明:
1 | let mut x = 5; |
这是一个可变的变量绑定。当绑定是可变的时候,意味着你可以改变此绑定。所以在上面的例子中,x
可以从一个值变为另一个值。
如果你想
过滤器是一种运行于控制器动作之前或之后的对象。例如,运行于动作之前,用于确认终端用户是否有权访问的访问控制过滤器;运行与动作之后,用于压缩输出的内容压缩过滤器。
过滤器通常包含前置过滤器和后置过滤器。
过滤器实际是一类特殊的行为(behaviors)。因此,过滤器的使用跟行为的使用是一样的。我们可以通过重写控制器类中behaviors()
方法来声明过滤器,如下:1
2
3
4
5
6
7
8
9
10
11
12
13public function behaviors()
{
return [
[
'class' => 'yii\filters\HttpCache',
'only' => ['index', 'view'],
'lastModified' => function ($action, $params) {
$q = new \yii\db\Query();
return $q->from('user')->max('updated_at');
},
],
];
}
默认情况下,在控制器类中声明的过滤器会应用到当前控制器下的所有动作。But,我们可以通过配置only
属性来指定当前过滤器应用的动作,如上例。我们也可以通过配置except
属性来指出哪些动作不应用于当前过滤器。
Modules是一个由模型层、视图层、控制器层构成的自包含模块,另外还支持组件(components),终端用户可以直接访问modules的控制器。所以,modules会被视为一个小型的应用,模块却别于正常应用的是,其不能独立存在,而必须隶属于应用的一部分。
模块通常位于根目录,在这个目录内包含有子目录,如controllers
、models
、views
,形如一个正常的应用,下面是一个模块的例子:
1 | forum/ |
就像下面这样1
2$lastWeekStart = mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$lastWeekEnd = mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
主要思路是取出要用来的排序的字段,并以源数组键为建,对其进行相应排序后,对应回源数组。
1 | /** |
前段时间遇到一个需要根据二位数组的中的多个维度进行排序的情况,于是将快速排序进行了一点改造,以支持多个维度的排序。
OpenSSL可以对签名进行生成和验证,对数据进行加密和解密
PHP CURL curl_setopt 参数
bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。
下列选项的值将被作为长整形使用(在option参数中指定):
? CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。
? CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。
? CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。
? CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。
? CURLOPT_NOBODY : 如果你不想在输出中包含body部分,设置这个选项为一个非零值。
? CURLOPT_FAILONERROR : 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。
? CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。
? CURLOPT_POST : 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
环境:ubunut14.04
一直用greenVPN做代理,但是有一个问题,就是green把SSH给封了,导致连接VPN的时候,SSH无法连接远程服务器,那可如何是好,恐怕只有一条路了,就是让这些IP绕过VPN。
绕之前我们先route
一下,看看使用VPN前后的网络变化:
before
Destination | Gateway | Genmask | Flags | Metric | Ref | Use | Iface |
---|---|---|---|---|---|---|---|
default | localhost | 0.0.0.0 | UG | 0 | 0 | 0 | wlan0 |
192.168.1.0 | * | 255.255.255.0 | U | 9 | 0 | 0 | wlan0 |
MVC是应用中常用的组织架构,对于一些基础的东西这里不做赘述,只介绍一些不是很常用的但是颇有裨益的内容,希望在以后的开发中能够加以运用。
controller主要负责接收请求数据并转发给model层处理,然后将返回值交给view层展现给用户。
satandalone actions 是指独立于controller的单独的一个action,一般负责一个独立功能,这个功能会被多方复用,比如获取验证码的captcha,捕获错误error。此类action需继承自yii\base\Action
或是其子类,并实现其run()
方法。