分类 后端 下的文章

格式化所有项目里的所有php文件

  1. 先列出所有php文件,保存到php.txt中。git ls-files |grep \.php$ > php.txt
  2. phpfmt插件目录拷贝fmt.phar到项目根目录。
  3. 保存一下文件为format.sh
#!/bin/bash
while IFS= read -r file
do
    [ -f "$file" ] && php fmt.phar --psr2 --smart_linebreak_after_curly "$file" #php-cs-fixer fix --rules=@PSR2,-phpdoc_align,@Symfony,-unary_operator_spaces --rules='{"concat_space":{"spacing":"one"}}' "$file"
done < "./php.txt"
  1. bash format.sh就好了。

Laravel中,多个项目共享session

现有多个laravel项目,需要在切换项目的时候,做到保留用户的登录信息。
也就是说,用户使用另外一个项目的时候,不需要重新登录,而是使用原来的登录态。

其实很简单,只需要两个项目在同一域名下,cookie名也相同即可。

设置cookie名可以在config/session.php中,'cookie'=>'token'(例如设为token)。

当然了在.env中,APP_KEY也一样才可以。
否则,需要在app\Http\Kernel.php中注释\App\Http\Middleware\EncryptCookies::class这一行。
因为cookie的加密会用到APP_KEY。

Lumen中路由不支持可选参数

在Lumen所使用的FastRoute中,对可选参数提供了支持。
例如/user/1来查看用户id为1的用户信息,/user来查看自己(已登录)的用户信息。
此时路由/user后面的/1是可以省略的。
用FastRoute写规则就是/user[/{id}]

但是在Lumen中并不支持这种写法。
需要分开写两条路由:
/user/user/{id}

特此记录

Ubuntu 升级至PHP7.0

  1. sudo add-apt-repository ppa:ondrej/php
  2. sudo apt-get update
  3. sudo apt-get install php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml libapache2-mod-php7.0
  4. (nginx)sudo apt-get install php7.0-fpm

安装时遇到了这个错误:

>sudo apt-get install php7.0
正在读取软件包列表... 有错误!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/cn.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en
E: 无法解析或打开软件包的列表或是状态文件。
>sudo rm /var/lib/apt/lists/* -vf

后再执行,出现这个问题:

sudo apt-get install php7.0
[sudo] password for skys215: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 php7.0 : 冲突: php5 (< 5.6.16+dfsg-4~) 但是 5.5.9+dfsg-1ubuntu4.14 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

使用命令

sudo apt-get -y purge php.*

删除所有以php开头的包即可。(注意该操作也会移除phpmyadmin,后面再安装一遍就好了)

在我的电脑会移除

  libapache2-mod-php5* php-gettext* php-pear* php-seclib* php-tcpdf* php5-cli*
  php5-common* php5-curl* php5-dev* php5-fpm* php5-gd* php5-imagick*
  php5-intl* php5-json* php5-mcrypt* php5-mysql* php5-readline* php5-sqlite*
  phpmyadmin* pkg-php-tools*

这些包。如果安装7.0后出现包缺失的问题,装回去就好了。

参考网页:
How To Upgrade to PHP 7 on Ubuntu 14.04

新服务器之-搭建ss服务器

为了番羽土啬,打算在新服务器上搭建shadowsocks

先通过apt-get install python-pip安装pip。
再安装ss。

pip install shadowsocks

安装只需要这两个步骤。
接下来是配置。

为了方便管理,在/etc/下新建文件夹shadowsocks。

sudo mkdir shadowsocks

再进入新建的这个文件夹。
用vim新建shadowsocks.json
输入

{
    "server":"my_server_ip",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false,
    "workers": 1
}

保存并推出。

接下来要启动服务器。

sudo ssserver -c shadowsocks.json