PHP-笔记

苏格兰福斯湾的巴斯岩

在这里记录一些关于 PHP 的笔记。

laravel

laravel5.5编译less

1.需要手动安装两个包

1
2
npm install less --save-dev
npm install less-loader --save-dev

2.因为less3.x暂不支持 javascriptEnabled ,需要修改 less-loader/dist/index.js

less-loader.png

var options 后面加上 options.javascriptEnabled = true

3.如果想自定义 webpackConfig 可以使用 mix.webpackConfig()

参数的结构可以参照 node_modules/laravel-mix/src/builder/webpack-default.js

Ant Design of Vue 定制主题示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mix.webpackConfig({
module: {
rules: [{
test: /\.less$/,
use: [{
loader: 'less-loader',
options: {
modifyVars: {
'primary-color': '#1DA57A',
'link-color': '#1DA57A',
'border-radius-base': '2px',
},
javascriptEnabled: true,
},
}],
}],
},
});

(此示例中 javascriptEnabled: true 与上面第2条添加 options.javascriptEnabled = true 的作用相同,可二选其一)

最后在 webpack.mix.js 文件中使用 mix.less() 即可

多个项目导致 .env 文件冲突

这个问题多半发生在 Apache上,因为加载.env文件的时候用了 getenv() 和 setenv() 。

这两个函数不是线程安全的,它会将.env文件里面的值设置在进程级别的环境中(process-wide variable)

Apache 使用线程处理请求,当一个进程同时有几个线程的时候,就比较容易发生 ‘串值’ 的情况

https://blog.csdn.net/qq_29785317/article/details/81068733

解决方案:

执行 php artisan config:cache


正则

匹配 反斜杠 \

在 PHP 中用正则匹配 \ 需要用四个反斜杠,即 '/\\\\/',用两个的话会在 PHP 解析字符串时被解析为一个。

PS. 貌似,用三个也可以。


JSON

json_encode 造成浮点数精度问题

https://www.php.net/manual/zh/function.json-encode.php

https://www.php.net/manual/zh/ini.core.php#ini.serialize-precision

https://wiki.php.net/rfc/precise_float_value

https://segmentfault.com/a/1190000008737065

http://landcareweb.com/questions/11885/php7-1-json-encode-floatwen-ti

https://blog.csdn.net/qq_42451060/article/details/80993664