编程

Laravel 底层 - 扩展框架

754 2024-06-12 00:32:00

几天前,我正在修复一个不稳定的测试,结果发现我的工厂需要一些 unique 和 valid 值。Laravel 封装了 FakerPHP,我们通常通过 fake() 助手来访问它。FakerPHP 附带了 valid() 和 unique() 等修饰符,但你一次只能使用一个,所以不能执行 fake()->unique()->valid(),这正是我...

详情...
编程

构建可维护的 PHP 应用:思考数据与思考业务流程

714 2024-06-11 01:27:00

互联网上的大多数教程以及其他正规或非正规教育,都教会开发人员如何用 CRUD 思维构建项目,CRUD 思维高度技术化,专注于数据操作,类似于 Excel 的发明初衷,几十年来一直在做它的工作。这是可以理解的,因为编程的入门材料需要简单易用。不要误解我的意思,作为一个起点,内容对初学者来说很好,但当构建真实世界的项目时,它们比学习材料中显示的更复杂。如果你真的...

详情...
编程

在 PHP 中使用 ScraperAPI 爬取 Google 网页搜索

926 2024-06-10 01:23:00

当你手动做事时,在网上抓取数据是一个令人厌烦的过程。例如,如果碰巧使用 PHP 进行操作,则需要执行以下步骤。使用 file_get_contents() 函数获取网站内容使用 DOMDocument 类解析内容然后使用 loadHTML()函数加载数据最后,使用 getElementsByTagName() 函数遍历 DOM 树虽然这是有效的,但这是一个乏...

详情...
编程

Laravel Collection 新增的 select 方法

731 2024-06-08 02:27:00

还记得 Laravel Collection 中 only 方法吗,它允许你从集合中检索项目子集,例如,如果有一个这样的数据数组。...

详情...
编程

Java 哈希密码

646 2024-06-06 00:37:00

本教程中,我们将讨论密码哈希的重要性。我们将快速了解它是什么,为什么它很重要,以及在 Java 中实现它的一些安全和不安全的方法。哈希(Hash)是使用称为加密哈希函数的数学函数从给定消息生成字符串或哈希的过程。虽然有几种哈希函数,但那些为哈希密码量身定制的函数需要具有四个主要属性才能安全:...

详情...
编程

Java ConcurrentMap 指南

901 2024-06-05 04:12:00

Map 天然是 Java 集合中最广泛的样式之一。而且,重要的是,HashMap 不是线程安全的实现,而 Hashtable 确实通过同步操作提供了线程安全。尽管 Hashtable 是线程安全的,但它的效率不是很高。另一个完全同步的 Map(Collections.synchronizedMap)也没有表现出很高的效率。如果我们想要在高并发下具有...

详情...
编程

Java HashMap 指南

672 2024-06-04 03:17:00

本文中,我们将了解如何在 Java 中使用 HashMap,以及它在内部的工作方式。Hashtable 是一个与 HashMap 非常相似的类。要了解 Hashtable 类本身以及 HashMap 和 Hashtable 之间的区别,看参照此文。我们先来看看 HashMap 是一个映射指的着什么。映射是键值对映射,这意味着每个键都映...

详情...
编程

使用 Spring Boot 和 JPA 存储 PostgreSQL JSONB

1059 2024-06-02 01:26:00

本教程将使我们全面了解在 PostgreSQL JSONB 列中存储 JSON 数据。我们将快速回顾如何使用 JPA 处理存储在可变字符(VARCHAR)数据库列中的 JSON 值。之后,我们将比较 VARCHAR 类型和 JSONB 类型之间的差异,了解 JSONB 的附加功能。最后,我们将讨论 JPA 中的映射 JSONB 类型...

详情...
编程

修复 MySQL 8.4 的 "mysql_native_password is not loaded" 插件未加载错误

12421 2024-06-01 00:04:00

MySQL 8.4(截至 2024 年的最新 LTS 版本)中引入的一个主要变化是,默认情况下不再启用 “MySQL Native Password” 插件。此更改会影响使用 MySQL 数据库和 mysql_native_password 身份验证插件的 PHP 和其他应用。由于默认情况下不再加载 mysql_native_password 插件,因此 ...

详情...
编程

使用 Spring 实现两级缓存

555 2024-05-31 00:55:00

缓存数据意味着我们的应用不必访问速度较慢的存储层,从而提高了性能和响应能力。我们可以使用任何内存中的实现库来实现缓存,比如 Caffeine。尽管这样做可以提高数据检索的性能,但如果应用部署到多个副本集,则缓存不会在实例之间共享。为了克服这个问题,我们可以引入一个所有实例都可以访问的分布式缓存层。本教程中,我们将学习如何在 Spring 中实现两级...

详情...