webman使用笔记
安装 webman
初始备注:
不要使用 php8.0 及以上版本(除非不用 think-cache 缓存插件)think-cache 无法友好的支持 php8.0 及以上版本。
目前使用 php7.4
composer 安装1、创建项目
1composer create-project workerman/webman
2、运行
进入 webman 目录
debug 方式运行(用于开发调试)
1php start.php start
daemon 方式运行(用于正式环境)
1php start.php start -d
注意webman 从 1.2.3 版本开始专门为 windows 系统提供了启动脚本(需要为 php 配置好环境变量),windows 用户请双击 windows.bat 即可启动 webman,或者运行 php windows.php 启动 webman。
3、访问
浏览器访问 http://ip 地址:8787
基础功能需要安装的 composer 扩展(默认以熟悉的 tp 为主)安装 think-template1、composer 安装
1compose ...
10个提高开发效率的 VS Code 快捷键!
作者:Mariana Simon译者:前端小智来源:dev
下面列出了一些智米们都应该尽快学习的快捷键。我真希望一开始写代码就知道它们。它可以节省我们数小时的手动码字。
1. Ctrl + P:显示搜索栏以搜索文件(Mac: Cmd + P)
我们经常在多个文件进行切换,这个快捷键可以帮助我们快速找到我们想到的文件。
2. Ctrl + Shift + P:显示命令面板(Mac: Cmd + Shift + P)
这个快捷键显示可以在其中搜索操作的命令面板。
3. Crtl + B:切换侧栏(Mac: Cmd + B)
显示或隐藏侧栏。
4. Ctrl + Shift + E:移到资源管理器窗口(Mac: Cmd + Shift + E)
移动到资源管理器窗口,高亮显示我们文件所在的位置。
5. Ctrl + Shift + M:快速显示错误和警告(Mac: Cmd + Shift + M)
每个人都喜欢没有 but 的代码,这个快捷键可以帮助我们更好的查看错误原因。
6. Ctrl + Shift + L:多光标选择(Mac: Cmd + Shift + L)
添加其他光标 ...
一篇搞懂Git 和 SVN 的区别【原理篇】
前言Git 和 SVN 都是版本管理系统,但是他们命令区别后面会简单进行一个对比,我们先从原理的角度分析
4.git 和 svn 命令先来复习哈命令
作用
git
svn
版本库初始化
git init
svn create
clone
git clone
svn co(checkout)
add
git add (.除去.gitignore,*所有的文件)
svn add
commit
git commit
svn commit
pull
git pull
svn update
push
git push
-
查看工作状态
git status
svn status
创建分支
git branch <分支名>
svn cp <分支名>
删除分支
git branch -d <分支名>
svn rm <分支名>
分支合并
git merge <分支名>
svn merge <分支名>
工作区差异
git differ (-cached / head)
s ...
PHP Faker 教程
什么是 PHP FakerFaker 是一个生成假数据的 PHP 库,Faka 数据通常用于测试或用一些伪数据填充数据库,Faker 受到 Perl 的 Data :: Faker 和 Ruby 的 Faker 的极大启发。
说白了就是:
我们在创建完数据表格后往往需要做一些假数据,而 Faker 就是这样的工具。安装 Faker
安装 Faker在项目所在的文件夹中打开命令行输入以下命令:
1composer require fzaninotto/faker
运行以后会在 vendor 文件夹下生成:
实际使用在项目中的实际使用方法(以 Thinkphp 为例):
12345678910111213141516171819202122232425262728293031323334353637383940414243<?phpnamespace MyFaker;//use会调用类注册, 前提是你得先导入相应的类注册方法 (autoload.php)use Faker\Factory;class FakerData{ //使用faker生成假数据 p ...
宝塔使用webhook更新服务器代码
安装 git1yum install git
安装 webhook 插件添加 shell 脚本,如上图,点击添加,数据名称 和 执行脚本(此处执行脚本框中 直接输入 shell 脚本可能会被过滤,所以可以先随便添加点东西,然后再重新添加 shell 脚本),shell 脚本如下
123456789101112131415161718192021222324252627282930313233343536373839404142#!/bin/bashecho ""#输出当前时间date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"echo "Start"#判断宝塔WebHook参数是否存在if [ ! -n "$1" ]; then echo "param参数错误" echo "End" exitfi#git项目路径gitPath="/www/w ...
Git基础知识
什么是 Git从一般开发者的角度来看,Git 有以下功能:
从服务器上克隆数据库(包括代码和版本信息)到单机上。
在自己的机器上创建分支,修改代码。
在单机上自己创建的分支上提交代码。
在单机上合并分支。
新建一个分支,把服务器上最新版的代码 fetch 下来,然后跟自己的主分支合并。
生成补丁(patch),把补丁发送给主开发者。
看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
一般开发者之间解决冲突的方法,开发者之间可以使用 pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,Git 有以下功能:
查看邮件或者通过其它方式查看一般开发者的提交状态。
打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
向公共服务器提交结果,然后通知所有开发人员。
Git 初入如果是第一次使用 Git,你需要设置署名和邮箱: ...
mysql实现group by后取各分组的最新一条
两种实现方式先 order by 之后再分组:
SELECT _ FROM (SELECT _ from tb_dept ORDER BY id descLIMIT 10000) a GROUP BY parent_id;
不加LIMIT可能会无效,由于 mysql 的版本问题。但是总觉得这种写法不太正经,因为如果数据量大于 Limit 的值后,结果就不准确了。所以就有了第二种写法。
SELECT * FROM tb_dept td,(SELECT max(id) id FROM tb_dept GROUP BY parent_id) md where td.id = md.id;
开发过程中真实 sql 语句举例:
1select * from (select * from guangnian_distribution order by id desc LIMIT 10000) m group by m.guangnian_id,m.user_id order by id desc
关于lnmp mysql的一个坑记录一下
Mysql5.7 及以上 only_full_group_by 以及其他关于 sql_mode 原因报错详细解决方案
经过我们一番百度之后,获取的结果是关于 only_full_group_by ,但是按照教程所说,只要修改了 my.cnf,
在 my.cnf 添加如下配置(或者在 my.ini 里配置新增)
1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
php - api接口跨域问题
Nginx 伪静态配置为:123456789101112location / { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'POST,PUT,GET,DELETE'; add_header Access-Control-Allow-Headers 'version, access-token, user-token, Accept, apiAuth, User-Agent, Keep-Alive, Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, ATJ-Token,ATJ-Device-Type'; if ($request_method = 'OPTIONS') { ...
如何制定一个自定义hexo组件
有的时候发现官方的组件不够用,所以需要自己制作一个合适的组件。这里我简单写了一个可以互相交流一下。
步骤新建 js首先我们需要找到修改的位置
1-hexo - theme - volantis - scripts - tags - xxx.js;
我们需要在tags文件夹中创建一个自己的 js,例如:moviebox.js
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556function postMoviebox(args, content) { return ( `<div class='moviebox'><img class='moviebox-img' src='/images/mlzg02.webp' alt='豆瓣'/>` + `<div class='moviebox-ms ...








