一、如何获取当前登录用户信息
use Auth; class XXXController extends Controller { public function xxx() { echo Auth::user()->id; //当前登录用户ID echo Auth::user()->username;//当前登录用户账号 echo Auth::user()->realname;//当前登录用户名称姓名 } }
二、使用unionall批量返回多条SQL查询结果
当需要多次查询,一次反馈时,可以使用laravel unionall 语句,将多个查询结果级联在一起进行查询,语句如下:
$ips_list = DB::table('ips')->where('network', '=', '1')->where('used', '=', '0')->limit(5); for($n = 1; $n < $total_networks; $n++){ $ip_list_subquery = DB::table('ips') ->where('network', '=', $n) ->where('used', '=', '0') ->limit(5); $ips_list = $ips_list->unionAll($ip_list_subquery); } $ips = $ips_list->get();
上述代码的级联形式如下:
$a->unionAll($b)->unionAll($c)->unionAll($d)...
比常规的包含式unionall查询性能更好:
$a->unionAll($b->unionAll($c->unionAll($d...))))
三、性能优化方法
1、常规优化
php artisan route:cache php artisan optimize php artisan config:cache composer dumpautoload -o
2、PHP开启opcache方法
3.2.1 打开php.ini文件
3.2.2 找到:[opcache],设置为:
[opcache] ; dll地址 zend_extension=php_opcache.dll ; 开关打开 opcache.enable=1 ; 开启CLI opcache.enable_cli=1 ; 可用内存, 酌情而定, 单位为:Mb opcache.memory_consumption=528 ; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB) opcache.interned_strings_buffer=8 ; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值 opcache.max_accelerated_files=10000 ; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒 opcache.revalidate_freq=1 ; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高 opcache.fast_shutdown=1
四、Echart X轴滑动触发性能优化
使用Echart绘制曲线图,并绑定X轴滑动事件。
当滑动后,需要向服务器发起三次ajax请求。
若完全使用异步,用户滑动后,可能会发起上百次请求,但是Chrome等浏览器并发限制默认是6,会导致请求速度极慢。
经过测试后,将ajax请求最快的请求设为同步,ajax速度请求慢的设为异步体验最好。
五、常用命令
php artisan dump-autoload