Write the Code. Change the World.

分类目录
6月 03

mysql 事务里,没有使用 commit。导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败。

处理

方法一
– 查看事物表,找出被锁线程的id:SELECT * FROM information_schema.INNODB_TRX;
– 根据 id(trx_mysql_thread_id),kill掉被锁住的线程:kill 121212

方法二
– 执行MySQL命令:SHOW FULL PROCESSLIST; 找到被锁住的线程ID
– 根据id,kill掉被锁住的线程:kill 4

5月 21

一套完善编码规范很重要。 php-cs-fixer 可一键把代码格式化为 PSR-2 标准。 php-cs-fixer 可单独使用,也可以结合编辑器使用。

github: https://github.com/FriendsOfPHP/PHP-CS-Fixer

操作一波

下载并设置权限

cd /usr/local/bin

wget https://cs.symfony.com/download/php-cs-fixer-v2.phar -O php-cs-fixer 

chmod +x php-cs-fixer

使用

# 格式化当前目录下代码 
php-cs-fixer fix .
3月 23

composer 安装包的时候,可能出现 memory 不足问题处理。

error

PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

解决步骤

  • 使用 composer -h 找到 composer 的位置.
  • 开始安装
php -d memory_limit=-1 /usr/local/bin/composer require laravel/sanctum
2月 02

直接开始

# 方式一
sudo pecl channel-update pecl.php.net

sudo pecl install swoole

# 方式二
# 官网 https://wiki.swoole.com/#/environment
# pecl https://pecl.php.net/package/swoole
cd /usr/local/src
sudo wget https://pecl.php.net/get/swoole-4.6.2.tgz
sudo tar -xzvf swoole-4.6.2.tgz
cd swoole-4.6.2
sudo phpize

sudo ./configure \
--enable-openssl \
--enable-http2 

# 支持更多可以看文档
./configure \
--enable-openssl \
--enable-http2 \
--enable-swoole-json \
--enable-swoole-curl

sudo make && make install
sudo make test

# 找到扩展存放位置
php -i|grep extension_dir
 /usr/lib/php/20190902
 sudo cp /usr/local/src/swoole-4.6.2/modules/swoole.so ./swoole.so
 # 然后安装下边的方式配置和重启即可。

# 找 php 版本,发现是 7.4
php -v

sudo vim /etc/php/7.4/mods-available/swoole.ini

# php 扩展安装位置
php -i|grep extension_dir

# 写入下边内容
extension=swoole.so

# 创建软链
cd /etc/php/7.4/cli/conf.d
sudo ln -s /etc/php/7.4/mods-available/swoole.ini ./20-swoole.ini

# 重启
sudo service php7.4-fpm restart

# 查看 
php --ri swoole
php -i |grep swoole
12月 24

过程

vagrant box remove laravel/homestead

vagrant destroy

# virtualbox 自带 uninstall 
# 删除 vagrant 

mac 安装的软件

  • Chrome
  • iterm2
  • 迅雷
  • vscode
  • 微信
  • Geph
  • 百度云盘
  • ForkLift
  • HbuilderX
  • 腾讯课堂
  • Adobe Photoshop
  • Adobe InDesign
  • Adobe Lightroom Classic
  • Adobe Preme
  • Adobe II
  • ezip
  • 爱奇艺
  • 钉钉
  • 达芬奇
  • Screenium 视频截图
  • MacClean
  • Navicat Premium
  • rdm
  • Postman
  • 微信开发者工具
  • 腾讯视频
  • qq音乐
  • QQ
  • Sequel Pro
  • 微信支付商户证书工具
  • 百度小程序开发者工具
  • Novavi PDF Editor2 这个蛮好用的 pdf 可以编辑 pdf
  • 有道云笔记
  • 花间
  • mac office2019

mac ntfs 工具

https://blog.csdn.net/huajian121/article/details/108835602

11月 22

打开一次网址,访问次数就加一次。如果同一操作端连续打开,就不应该计算进去的。这就涉及到一个鉴别。已经有第三方包处理这种场景了,我们安装使用它就好了。

github: https://github.com/awssat/laravel-visits

doc: https://awssat.com/opensource/laravel-visits/3_installation.html#configurations

操作一波

composer require awssat/laravel-visits

php artisan vendor:publish --provider="Awssat\Visits\VisitsServiceProvider" --tag=config

安装 laravel-visits 包,并生成配置文件。这里我们使用 redis 来作为数据处理工具。在 config/database.php 中添加配置:
继续阅读

11月 13

最近 composer require 的时候,会出现 Allowed memory size of bytes exhausted 问题,安装不成功。那总得解决。

操作一波

# 看看 memory_limit 的值结果 1024M,这个我之前改过
php -r "echo ini_get('memory_limit').PHP_EOL;"

# 1024M 这玩意还是不行,继续
php -i grep | php.ini

# 结果(用的是 homestead 环境)
Configuration File (php.ini) Path => /etc/php/7.3/cli
Loaded Configuration File => /etc/php/7.3/cli/php.ini

# 将 memory_limit 的值改为 -1
vim  /etc/php/7.3/cli/php.ini 

# 重启 对应相关的 php-fpm
sudo service php7.3-fpm restart

重启后,再 require,就成功了。

10月 25

项目有时候是需要一眼看清楚各个对象的层级关系,树样子就比较明晰。下边通过一个无线嵌套数组(每个对象的 children 有对象,表示有子对象),来展示看看效果。

效果渲染截图

继续阅读

10月 23

响应格式的统一,对前端来说,是一种更好的体验。这里借鉴别人的地方,仅仅对 response 做统一格式响应。

规范的响应结构

RESTful 服务最佳实践

code—— 包含一个整数类型的 HTTP 响应状态码。
status—— 包含文本:”success”,”fail” 或”error”。HTTP 状态响应码在 500-599 之间为”fail”,在 400-499 之间为”error”,其它均为”success”(例如:响应状态码为 1XX、2XX 和 3XX)。
message—— 当状态值为”fail” 和”error” 时有效,用于显示错误信息。参照国际化(il8n)标准,它可以包含信息号或者编码,可以只包含其中一个,或者同时包含并用分隔符隔开。
data—— 包含响应的 body。当状态值为”fail” 或”error” 时,data 仅包含错误原因或异常名称。

继续阅读