使用 html + mPdf 生成优美的PDF文档

Github : https://github.com/mpdf/mpdf
Document : https://mpdf.github.io/

对于没有接触 mpdf 之前, 我的pdf 解决方案是 tcpdf, 在遇到这个文档之后只能大呼 “真香”, 这个扩展对于pdf 的样式, 分页, 图片的支持都比较便捷, 不需要单独去进行干预, 只需要组织好相关的html即可, 这里只是抛砖引玉, 简单的使用
优点

  • 支持中文
  • 支持自定义字体
  • 支持远程图片
  • 生成 pdf 体积极小(实测 666页的文档, 体积仅有 24.4m)
  • PDF 元数据(加密/作者/PDF 版本)

可能算不上缺点的缺点

  • 执行时间长(这里和远程图片有关系, 可以使用缓存优化)
阅读更多

基础学习

version_compare(zend_version(), “2-dev”, “ge”);


第三个参数是操作符参数,而不是另外一个版本


pear私有变量是以’_’开头的变量


PHP4中的is_a()函数不推荐使用,推荐使用 instanceof


PHP5中可以通过foreach()循环的参数加上引用符号,让你在遍历数组的时候更改数组的值


变量的间接引用
$name = ‘john’;
$$name = ‘Rename John’;
echo $john;
显示  Rename John


超全局变量
$_GET   一个包含所有PHP从客户浏览器接受的GET变量的数组
$_POST 一个包含所有PHP从客户浏览器接收的POST变量的数组
$_COOKIE 一个包含所有PHP从客户浏览器接收的cookies的数组
$_ENV     一个包含环境变量的数组
$_SERVER 一个存放web服务器变量的数组


PHP特殊字符串
双引号

\n 换行符
\t 制表符
\“ 双引号
\\ 反斜线
\0 ASCII 0 null
\r 回到行的开始位置
\$ 标准的$符号,不会被当成变量
\[0-7]{1,3} 用8进制写的字符,
\x[0-9A-Fa-f]{1,2} 用16进制写的字符,
\u{[0-9A-Fa-f]+} 匹配正则表达式的字符序列是 unicode 码位, 该码位能作为 UTF-8 的表达方式输出字符串

单引号

\‘ 单引号
\\ 反斜线

定界符

阅读更多

Laravel Faq

Laravel 错误 Class log does not exist …

Fatal error: Uncaught exception ‘ReflectionException’ with message ‘Class log does not exist’ in /Users/freek/dev/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:776

出现这种问题的原因是不能够加载 log 方法. 原因是在加载的时候会加载 config 文件的数据, 而 config 文件中的配置是批量加载的, 所以在自己加载的时候 config 文件的写法不支持自定义的函数变量/ 常量/ 自定义方法.
所以从配置文件入手, 删除未加载的配置文件, 删除未导入包的配置文件.
这种问题一般出现在 复制项目, 并且删除了包的情况下.

阅读更多

注解 & Aspect


这个图是基于丝路项目的流程逻辑, 并不和下边的类相符, 下边的类是用 Hyperf 原生进行定义的

阅读更多

Php 学习笔记

我是小有哥, 一个做开发有 10 年+ 的 Php 程序员, 非科班出身, 自学以致用, 现在是一枚 Php 后端 + 基础运维 + Web 前端(Vue/React/Web) 集于一身的全栈程序员.
后续打算使用这个工具把 Php 的基础完全的整理下, 同时把自己的学习方法记录下, 希望对大家的学习以及工作能够有所帮助

阅读更多

Ubuntu 安装 LNMP(Nginx, PHP7.4, MySQL5.7)

18.04/20.04/22.04 测试通过

原理一致, 不过不同系统支持的版本不同, 详情见 https://launchpad.net/~ondrej/+archive/ubuntu/php
现在 Ondrej PPA 支持的平台是 Hirsute (21.04), Groovy (20.10), Focal (20.04), Bionic (18.04) 这几个(2021 年 11 月)

本文基于阿里云服务器手动安装(由于服务器配置比较低,之前一直用一键安装,CPU 会爆到 99%),服务器配置(1核、1G、50M),安装列表:

阅读更多

[译+]在 PhpStorm 中配置 Phpunit 的 Test Suite

原文地址 : https://www.liamnorman.com/phpstorm-testsuites/
我是测试驱动开发(TDD)的忠实粉丝,我相信测试可以验证代码库的可靠性和稳定性, 我相信使用 TDD 可以创建稳定的系统并有效地测试软件,确保我的设计符合我想要解决的问题。我倾向于经常进行测试,因为这样就会非常清楚如果系统中的一个变化破坏了什么东西,我马上就知道那是添加的东西并定位到问题所在。Robert “Uncle Bob” Martin 以一种非常优雅的方式总结了这个测试方法
说道 :

每小时都会写几个测试。每天都有写几十次测试。每个月都有几百次测试。在一年的时间里,你将编写数以千计的测试。你可以保留所有这些测试,并随时运行它们! 你什么时候运行它们呢? 任何时间! 任何时候你做了任何改变都可以运行!

如果你采用这种方法,那么必须经常运行你的测试套件Test Suites,并且以快速和有效的方式运行,作为你工作流程的一部分,从长远来看将节省你的开发时间
我在我的大多数时间开发中使用 PHPStorm, PHPStorm 有一个很棒的单元测试功能,你可以使用它从你的 IDE 运行测试。我们将介绍如何在项目设置并使用 PHPUnit.

阅读更多