转帖:在 2016 年做 PHP 开发是一种什么样的体验?(一)

嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听说 Web 技术已经发生了一些变化。听说你是这里对新技术最了解的开发工程师?

你算是找对人了。我对今年的技术别提多熟了, VR 、机器学习、守望先锋……你尽管问吧。我刚去了几个热门的技术大会逛了一圈,没有什么新技术是我不知道的。

厉害。是这样的,我要开发一个网站,用来展示用户的最新动态。我想我应该通过后端接口获取数据,然后用一个 table 来展示数据,用户可以对数据进行排序。如果服务器上的数据变化了,我还需要更新这个 table 。我的思路是用 jQuery 来做。

可别用 jQuery !现在哪还有人用 jQuery 。现在是 2016 年了,你绝对应该用 React 。

继续阅读转帖:在 2016 年做 PHP 开发是一种什么样的体验?(一)

微信公众平台开发过程中遇到的各种坑

遇到的第一个坑是服务器页面获取不到微信post过来的数据,没办法根据关键字来做自动回复。换了几个环境做了N个demo 终于找到了原因,竟然是因为php7已经不支持$GLOBALS[“HTTP_RAW_POST_DATA”],换成file_get_contents(‘php://input’)一切OK。万恶的微信官方demo竟然也是用$GLOBALS[“HTTP_RAW_POST_DATA”] 无语 无语 无语中…

Yii2 注册表单验证规则

public function rules()
    {
        return [
            ['username', 'filter', 'filter' => 'trim'],
            ['username', 'required'],
            ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => '该用户名已经被占用.'],
            ['username', 'string', 'min' => 4, 'max' => 12],
            ['username','match','pattern'=>'/^[a-zA-Z0-9_]+$/','message'=>'{attribute}只能由英文字母、数字、下划线组成'],

            ['realname', 'filter', 'filter' => 'trim'],
            ['realname', 'required'],
            ['realname', 'string', 'min' => 2, 'max' => 4],
            ['realname','match','pattern'=>'/^[\x{4e00}-\x{9fa5}]+$/u','message'=>'{attribute}必须为中文汉字'],

            ['organization_name', 'required'],
            ['organization_name', 'filter', 'filter' => 'trim'],
            ['organization_name', 'string', 'min'=>4,'max' => 20],

            ['email', 'required'],
            ['email', 'email'],
            ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => '该电子邮箱已经被占用.'],

            ['mobile', 'required'],
            ['mobile', 'integer'],
            ['mobile','match','pattern'=>'/^1[0-9]{10}$/','message'=>'{attribute}必须为1开头的11位纯数字'],
            ['mobile', 'string', 'min'=>11,'max' => 11],
            ['mobile', 'unique', 'targetClass' => '\common\models\User', 'message' => '该手机号码已经被占用.'],

            ['smsCode', 'required'],
            ['smsCode', 'integer'],
            ['smsCode', 'string', 'min'=>4,'max' => 4],
            //['smsCode', 'required','requiredValue'=>$this->getSmsCode(),'message'=>'手机验证码输入错误'],

            ['password', 'required'],
            ['password', 'string', 'min' => 6,'max' => 16,'message'=>'{attribute}位数为6至16位'],
            ['password2','compare','compareAttribute'=>'password','message'=>'两次密码不一致']
        ];
            ['nickname','match','pattern'=>'/^[a-zA-Z0-9_\x{4e00}-\x{9fa5}]/u','message'=>'{attribute}只能为字母下划线和汉字'],]    }

 

ubuntu14 升级curl

现在做的项目使用了第三方登录的功能,但是每次都授权失败。找到原因是因为curl没有开启SSL,不支持https的地址所以无法正确的获取token。

需要重新安装curl,首先现在curl官网下载最新版本的curl源码我这里下载的是7.51版本.

下载完完成后解压缩

进入解压后的源码目录进行编译

./configure --with-ssl

网上大部分好像都是呀指定一个目录的,但是ubuntu不需要指定

紧接着 make && make install

重启一下就可以了

 

yii2 路由重写

Yii配置

<?php
return [
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true, //启用URL美化
            'showScriptName' => false, //禁用 index.php
            'suffix' => '.html', //启用后缀
            'rules' => [
            ],
        ]
    ],
];
'rules' => [
      '<controller:\w+>/<action:\w+>/<pid:\d+>'=>'<controller>/<action>'
 ]
<controller:\w+> //这是指匹配控制器
<action:\w+> //这是指匹配控制器内的方法
<pid:\d+> //这里指获取相应的请求参数的key \Yii::$app-&gt;request->get('pid');

 Nginx配置

在配置文件增加

if (!-e $request_filename){  
rewrite ^/(.*) /index.php last;  
}

继续阅读yii2 路由重写