2017年5月

#中信国安# 复盘0531

别人放假我没有,端午4天休市反而比平时更忙了。不过忙是好事,尝试去做有挑战的事情可以保持体力与精神的活跃。

今天整体就是5分的一笔,没有什么特别的地方,既没有跌破8.7威胁到前一个线段,也没有升破9.1去持续支撑前一个线段。成交也不过寥寥35万,少的可怜。

没啥可说的,就这样吧。

#中信国安# 复盘0526

又到了最后一个交易日,中信国安依旧一副药丸的样子在那盘整。

今天午盘收盘前有一波短暂的拉升,但没有破昨天9.1的高点,后面又继续5分盘整直到收盘。
上不破9.1就不构成5分线段持续,下不破8.54就不构成5分的新线段破坏。

继续看吧。

#中信国安# 复盘0525

续0524,开盘破8.54,收盘于8.8,反向的线段破坏已经完成,后面可能持续,可能再反继续线段破坏。
主要看价位了,下一个压力的价位在9.24。

#中信国安# 复盘0524

反向产生一个5分笔破坏了9.24开始的线段,但今天最后反弹的一笔没有突破8.54,因为线段破坏没有完成。

如果下面先突破8.54完成线段破坏,后产生一个新线段A下跌到7.94以下,那么可以比较线段A与7.94之前的最后一个线段。判断是否有背驰。

如果下面没有突破8.54又继续下跌,那么9.24开始的线段就还没有完成。

现代PHP语言令人兴奋的新特性

写太久股票了,写点和编程有关的东西。

最近准备重构一些老项目,PHP写的,听说PHP最近的新版里面加了不少新特性,整理了放这。

一、命名空间

5.3.0引入,使用虚拟层次组织PHP代码,为以后基于PSR的代码体系奠定了基础。命名空间的引入让类名冲突变的不太可能,并且让分布式的组件式开发变的方便起来。

// 为一个文件设置命名空间
namespace Symfony\Component\HttpFoundation;

// 为一个文件使用或引入另一个命名空间
use Symfony\Component\HttpFoundation\Response;

二、性状

5.4.0引入,关键字trait,性状这个翻译是抄的一本书上的。性状是类的部分实现,可以混入一个或多个PHP类里。

比如Web开发里常常需要验证表单提交过来的参数是否符合要求,或者更抽象,验证一个数组内的内容是否符合另一个数组定义的对应要求,比如长度,是否为数字,是否为空等。

之前的做法是在做表单验证的Model类里写一个通用的父类,然后让所有业务Model去继承这个父类,在父类里写通用的验证提交参数的方法。但这样的话,这个验证的方法只能在Model内使用。

如果想在Model以外的地方去验证某一个数组的内容是否符合要求该如何?可以使用trait来代替通用类的写法。
在一个trait里单独实现和验证相关的内容,然后在任意需要验证的类中引用trait即可。

<?php
trait TraitDemo {
    // Trait的实现
}

class ClassDemo {
    use TraitDemo;
    // Class的实现
}

三、生成器

5.5.0引入,generator在其他语言里经常能看到。生成器会根据需要计算并产出需要迭代的值。例如一个数组遍历,通常的方法会把整个数组放入内存里,然后依次读取处理。

而生成器不同,他并不将数组整个读进内存,而是每次只读取一条,把下次要处理的值生产出来,再循环的时候拿到上次生产的值进行处理,再生产下一次要处理的值。

<?php
function generatorDemo(){
    yield 1;
    yield 2;
    yield 3;
}

foreach(generatorDemo() as $item){
    echo $item, PHP_EOL;
}

// 输出
// 1
// 2
// 3

四、闭包

5.3.0时引入,闭包在创建的时候会封装其周围的运行状态,即使周围环境改变了,闭包内的状态依然可以保持。PHP里闭包也被称为匿名函数,虽然其他语言里,这两个是不同的东西。

闭包既可以作为函数被调用,被传入参数,也可以本身作为参数被传入其他函数。前面生成器每次迭代返回的都是Generator对象,闭包则是Closure类的对象,他们看起来是函数,其实都是对象。

<?php
$closure = function($demo){
    return 'hello ' . $demo;
}
echo $closure('world');
// 输出 hello world

$name = 'Heitaosu';
$closure2 = function($demo) use ($name) {
    return $demo . ' ' . $name;
};
$closure2('Hey,');
// 输出 Hey, Heitaosu

五、内置服务器

以前在玩RoR的时候,老是感叹,要是PHP啥时候也有这么方便的内置服务器就好了,现在也有了。5.4.0引入。

// 只允许本地使用4000端口访问
php -S localhost:4000
// 允许公开使用4000端口访问,一般是局域网,除非绑定了公网IP
php -S 0.0.0.0:4000
// 允许本地使用8000端口并指定php.ini配置文件
php -S localhost:8000 -c /path/to/php.ini