一个完整的框架,有很多部分组成。而路由,是很重要,也是比较接近用户行为的一环。今天,就尝试一下 iris 的路由的使用。
操作一波
从 zero 开始操作一波。
# favor 眷顾
mkdir favor
cd favor
go mod init favor
touch main.go
我们开始往 main.go 里边注入代码。
一个完整的框架,有很多部分组成。而路由,是很重要,也是比较接近用户行为的一环。今天,就尝试一下 iris 的路由的使用。
从 zero 开始操作一波。
# favor 眷顾
mkdir favor
cd favor
go mod init favor
touch main.go
我们开始往 main.go 里边注入代码。
iris web框架支持请求数据、模型、持久数据和以最快的速度执行的绑定。
在 iris 框架中,封装了 mvc 包作为对 mvc 架构的支持,方便开发者遵循 mvc 的开发原则进行开发。 iris框架支持请求数据、模型、持久数据分层处理,并支持各层级模块代码绑定执行。 MVC即:model、view、controller 三个部分,分别代表数据层、视图层、控制层。控制器层负责完成页面逻辑、实体层负责完成数据准备与数据操作、视图层负责展现 UI 效果。 在 iris 框架中,用一张图表示前端请求、服务端处理请求、服务端返回数据到前端的请求过程图,描述如下:
Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。
github: https://github.com/spf13/viper
通常开发 go 程序,要在 GOPATH 下的 src 下创建源码来开发。用了 go mod 就可以不用这样了。
比如。我们有一个空目录 d:/code/go/wallet
, 并且,该目录不是 GOPATH 下的。我们可以这样操作。
# 先进入 wallet 目录下
go mod init wallet
# 这个时候,会生成一个 go.mod 的文件,内容如下
module wallet
go 1.14
写入 code,运行之后,会在该目录生成 go.sum
文件。go.sum
是记录所依赖的项目的版本的锁定。
cropperjs 很多年中,对处理图片裁切做的体验非常棒。几个项目中,也使用过。那时候还是使用 jquery 这种传统的方式。现在想整一个使用 vue 和 element ui 组合在一起的模板。
cropperjs: https://github.com/fengyuanchen/cropperjs
photo-editor:https://github.com/fengyuanchen/photo-editor
当初 flash 的 mask 可以做很多事情。 css 貌似也可以。先收留,后边再研究。
markdown 不仅编辑文本,还要上传图片。laravel 服务端怎么搞呢。
使用 intervention/image
来处理图片吧。
最近 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,就成功了。
在 markdown 的场景中,经常会用到 markdown 和 html 的互转。 laravel 这边怎么处理呢。要做哪些呢。
互转用到: https://github.com/thephpleague/html-to-markdown
https://github.com/erusev/parsedown
防止 xss 注入用到:https://github.com/mewebstudio/Purifier