一、如何获取当前登录用户信息
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