Git Squash 用法
在开发一个功能的时候会反复的提交代码,会造成一个功能有很多次提交,在我们要向 mian 做分支合并的时候,就会出现很多 commits,在合并以后同一个功能的 commits 就会很多,导致我们无法清晰的知道这个功能关联的 commit 有哪些,这个 squash 就是优化我们的 commits 信息,让我们的版本仓库看起来简洁明了,功能点一目了...
Laravel 底层 - 扩展框架
几天前,我正在修复一个不稳定的测试,结果发现我的工厂需要一些 unique 和 valid 值。Laravel 封装了 FakerPHP,我们通常通过 fake() 助手来访问它。FakerPHP 附带了 valid() 和 unique() 等修饰符,但你一次只能使用一个,所以不能执行 fake()->unique()->valid(),这正是我...
构建可维护的 PHP 应用:思考数据与思考业务流程
互联网上的大多数教程以及其他正规或非正规教育,都教会开发人员如何用 CRUD 思维构建项目,CRUD 思维高度技术化,专注于数据操作,类似于 Excel 的发明初衷,几十年来一直在做它的工作。这是可以理解的,因为编程的入门材料需要简单易用。不要误解我的意思,作为一个起点,内容对初学者来说很好,但当构建真实世界的项目时,它们比学习材料中显示的更复杂。如果你真的...
在 PHP 中使用 ScraperAPI 爬取 Google 网页搜索
当你手动做事时,在网上抓取数据是一个令人厌烦的过程。例如,如果碰巧使用 PHP 进行操作,则需要执行以下步骤。使用 file_get_contents() 函数获取网站内容使用 DOMDocument 类解析内容然后使用 loadHTML()函数加载数据最后,使用 getElementsByTagName() 函数遍历 DOM 树虽然这是有效的,但这是一个乏...
Laravel Collection 新增的 select 方法
还记得 Laravel Collection 中 only 方法吗,它允许你从集合中检索项目子集,例如,如果有一个这样的数据数组。...
Java ConcurrentMap 指南
Map 天然是 Java 集合中最广泛的样式之一。而且,重要的是,HashMap 不是线程安全的实现,而 Hashtable 确实通过同步操作提供了线程安全。尽管 Hashtable 是线程安全的,但它的效率不是很高。另一个完全同步的 Map(Collections.synchronizedMap)也没有表现出很高的效率。如果我们想要在高并发下具有...
Java HashMap 指南
本文中,我们将了解如何在 Java 中使用 HashMap,以及它在内部的工作方式。Hashtable 是一个与 HashMap 非常相似的类。要了解 Hashtable 类本身以及 HashMap 和 Hashtable 之间的区别,看参照此文。我们先来看看 HashMap 是一个映射指的着什么。映射是键值对映射,这意味着每个键都映...
使用 Spring Boot 和 JPA 存储 PostgreSQL JSONB
本教程将使我们全面了解在 PostgreSQL JSONB 列中存储 JSON 数据。我们将快速回顾如何使用 JPA 处理存储在可变字符(VARCHAR)数据库列中的 JSON 值。之后,我们将比较 VARCHAR 类型和 JSONB 类型之间的差异,了解 JSONB 的附加功能。最后,我们将讨论 JPA 中的映射 JSONB 类型...
修复 MySQL 8.4 的 "mysql_native_password is not loaded" 插件未加载错误
MySQL 8.4(截至 2024 年的最新 LTS 版本)中引入的一个主要变化是,默认情况下不再启用 “MySQL Native Password” 插件。此更改会影响使用 MySQL 数据库和 mysql_native_password 身份验证插件的 PHP 和其他应用。由于默认情况下不再加载 mysql_native_password 插件,因此 ...