Write the Code. Change the World.

分类目录
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 仅包含错误原因或异常名称。

继续阅读

10月 23

使用 Lumen 8 + Api Resource  进行 API 开发

写在前面

统一响应结构,的确很有用。一种是官方默认的响应返回,比如自定义的 Request 的 validate。一种是自定义结构的。想要好的体验,就得两种统一处理起来。

工作中使用 Laravel 开发 API 项目已经有些年头了,发现每次启动新的 Api 项目的时都会在 Laravel 基础上进行一些预处理,包括针对 API 项目的结构设计,统一响应结构的封装,异常的捕获处理以及授权模块的配置等。总是在做一些重复的工作,那索性将这些常用的基础封装做成一个「启动模板」好了。

项目地址戳这儿
继续阅读

9月 28

laravel 中 laravel-permission 对角色权限管理很好用。这里,就用这个玩意吧。突然想到一个额外的问题。项目中使用的是 Laravel Sanctum 来做认证。这样,仅仅是它自己可以使用了。如果想将 node.js 等和这个配合起来认证,就不好搞了。如果是用 jwt 来做,就不会出现这个问题。jwt 的实现都是一样的,各个语言都可以通用。岔开了,这里还是 laravel-permission 吧。

操作一波

文档:

https://spatie.be/docs/laravel-permission/v3/introduction

https://github.com/spatie/laravel-permission#installation

composer require spatie/laravel-permission

# 生成配置文件和迁移文件
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"

# 如果之前做过缓存,需要这样处理下
php artisan config:clear

# 生成数据库表
php artisan migrate

继续阅读