工作经验分享 - php
type: channel
link: https://www.xuehuafei.cn/tag/php/
items: Fastadmin 配置多数据连接
items: vscode配合phpstudy开启xdebug调试
items: 正则替换Url占位参数

Fastadmin 配置多数据连接
type: item
date: 2023-01-03T15:59:00+08:00
description: 默认数据库配置，可在database.php中配置。多数据库的配置方式首先，application/config.php中，添加数据库配置，并填写自己的数据库信息。//抽奖数据库配置 'db_choujiang' => [ // 数据库类型 'type' => Env::get('database.type', 'mysql'), // 服务器地址 'hostname' => Env::get('database.hostname', 'mysql'), // 数据库名 'database' => Env::get('database.database', 'mysql'), // 数据库用户名 'username' => Env::get('database.username', 'root'), // 数据库密码 'password' => Env::get('database.password', 'root'), // 端口 'hostport' => Env::get('database.hostport', ''), // 数据库编码默认采用 utf8mb4 'charset' => Env::get('database.charset', 'utf8mb4'), // 数据库表前缀 'prefix' => Env::get('database.prefix', 'fly_'), ],使用方式数据库直连Db::connect('db_choujiang');模型文件配置protected $connection = 'db_choujiang';// 使用连接配置 protected $name = 'table_name';// 数据库名字

vscode配合phpstudy开启xdebug调试
type: item
date: 2022-11-29T11:06:00+08:00
description: php程序开发，xdebug比不可少，记录下配置流程。phpstudyphpstudy在php环境集成的xdebug，直接将插件开启即可使用。phpstudy->软件管理->全部->php->设置，开启xdebug调试组件，并设置端口。image-20221129104635514vscode在项目根目录下，建立用户自定义配置。vscode的所有配置，均在在此设置，这样，每个项目可以配置不同的环境和配色等。.vscode/settings.json这块写自己的开启了xdebug插件的php路径{ "php.validate.executablePath":"*//php.exe", "php.debug.executablePath":"*//php.exe", "php.debug.ideKey": "vsc" }php.debug.executablePath：debug调用的php环境php.debug.ideKey : 执行唤起ide的xdebug终端关键字，此配置需要php.ini中配置一致。配置此项，可忽略xdebug.remote_host配置php.inizend_extension=D:/web/serve/phpstudy_pro/Extensions/php/php7.1.9nts/ext/php_xdebug.dll xdebug.collect_params=1 xdebug.collect_return=1 xdebug.auto_trace=Off xdebug.trace_output_dir=D:/web/serve/phpstudy_pro/Extensions/php_log/php7.1.9nts.xdebug.trace xdebug.profiler_enable=Off xdebug.profiler_output_dir=D:/web/serve/phpstudy_pro/Extensions/php_log/php7.1.9nts.xdebug.profiler xdebug.remote_enable=1 xdebug.remote_autostart = 1 xdebug.idekey=vsc ;xdebug.remote_host=m.zmyy.tf xdebug.remote_port=9100 xdebug.remote_handler=dbgp大部分是自动生成的配置，注意idekey、remote_host、remote_port三项配置即可。配置完毕，测试效果在需要调试的代码行打断点image-20221129105603869按F5启动调试，vscdode会提示配置，launch.json文件，用于发起调试{ "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9100 },image-20221129105753762访问php端程序，发现程序到断点处停了下来，开始愉快的调试吧。image-20221129105947129分享一下vscode的个人配置.vscode/settings.json排除文件显示{ "files.exclude": { "**/.DS_Store": true, "**/__init__.py": true, "**/__pycache__": true, }, }代码自动换行，显示代码长度标尺线{ "editor.wordWrap": "wordWrapColumn", "editor.wordWrapColumn": 120, "editor.rulers": [ 80, 120 ], }编辑器的高亮配置{ "workbench.colorCustomizations": { // "editor.background": "#363636", //编辑器背景色 "editor.lineHighlightBackground": "#49b2b93d", //修改光标所在行的背景色 "editor.lineHighlightBorder": "#ffffff30", //修改光标所在行的边框色 "editor.selectionBackground": "#49b2b93d", //是选中后拖拉呈现的颜色 "editor.findMatchBackground": "#511F90", //当前搜索匹配的颜色 "editor.findMatchHighlightBackground": "#fd5000", //其他搜索匹配项的颜色 "editor.findRangeHighlightBackground": "#ff9900", //…

正则替换Url占位参数
type: item
date: 2022-08-23T10:09:00+08:00
description: 准备最近有一个任务，需要对Url进行加参数的传递，但是参数需要有指定的数据补充，不能提前写死。因此，准备使用正则替换的方式实现此功能。php函数# 执行一个全局正则表达式匹配 preg_match_all preg_match_all( string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0 ): int|false|null // 搜索subject中所有匹配pattern给定正则表达式 的匹配结果并且将它们以flag指定顺序输出到matches中. // 在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索. 成果$ssss = ['id'=>1,'php'=>5,'php1'=>7]; $page = "index/php?id=id&php=php&php1=php1"; preg_match_all("/(\w+=(?P<name>\w+))(#\w+)?/i",$page,$match); if(!empty($match) and isset($match['name'])){ $names = $match['name']; foreach($names as $name){ $page = str_replace('='.$name,'='.$ssss[$name],$page); } } 补充(?P<name>\w+)的意思就是命名一个名字为name的组，匹配规则符合后面的/w+