Laravel 中的地理数据检索
在这个系列中,我将试图涵盖我在那个项目中遇到的与地理数据相关的所有方面。首先是如何检索地理数据。有些人可能知道 OpenStreetMap 项目——Overpass API 是它的一部分,可以用来检索数据。它的行为类似于 GraphQL,因为它只有一个端点,你可以使用 Overpass QL 向其发送查询,通常 OpenStreetM...
PHP 8.4.0 Alpha 4 可用于测试
PHP 团队发布了 PHP 8.4.0 的第二个测试版本 Alpha 4。这延续了 PHP 8.4 的发布周期,其大致轮廓在 PHP Wiki 中指定。有关 PHP 8.4.0 Alpha 4 的源代码下载,请访问下载页面。请仔细测试此版本,并在错误报告系统中提交发现的任何问题。请不要在生产中使用此版本,这是一个早期测试版本。有关新功能和其他更改的更多信息,...
Laravel 11 中的 API 版本化
随着 Laravel 11 的发布,其应用框架进行了精简,以删除那些不是每个项目都需要的额外文件。其中的一个改变是,在应用源码中移所有服务提供者, AppServiceProvider 除外。另外一个更新是,在默认安装中移除了 API 路由。如果你想在应用中添加 API。你可以通过 Artisan 命令设置 api 中间件分组及路由: ...
[Laravel 扩展包]使用 Commenter 包为 Laravel 应用添加评论
Laravel Commenter 包是一个功能丰富的现代包,可以满足 Laravel 应用中的所有评论需求。该包包括一个管理面板,用于管理所有“可评论(commentable)”模型中的评论。该包模型包括一个 Commenter 和一个 Commentable 模型。你可以通过实现 CommentableContract 和 CommenterCont...
使用 PHP 和 Laravel Prompts 创建 SSH 应用
Sam Carré 的 ssh-php 项目是通过 SSH 在 PHP 中构建基于文本的用户界面(TUI)的一个简单得的起点...
WeakMap:PHP 中隐藏的宝石
WeakMap 是将对象作为 key 来访问的 map。WeakMap 中的对象 key 不影响对象的引用计数。也就是说,如果在任何时候对其唯一的剩余引用是 WeakMap key,那么该对象将会被垃圾收集并从 WeakMap 移除...
FetchType: Hibernate & JPA 的 Lazy/Eager 加载
在定义实体映射时,选择正确的 FetchType 是最重要的决定之一。它指定了 JPA 实现(例如 Hibernate)何时从数据库中获取关联实体。你可以在 EAGER 和 LAZY 加载之间进行选择。第一个选项会立即获取关联,另一个仅在使用它时才获取关联。我在本文中解释了这两个选项。选择正确的 FetchType 时的主要挑战是确保尽可能高效地获取实体,并...
使用 JPA 静态元模型创建类型安全的查询
编写条件查询或创建动态实体图时,需要引用实体类及其属性。最快捷、最简单的方法是将所需的名称作为字符串提供。但这有几个缺点,例如,在编写查询时,必须记住或查找实体属性的所有名称。但是,如果必须重构实体并修改某些属性的名称,那么在项目的后期阶段也会导致更大的问题。在这种情况下,必须使用 IDE 的搜索功能,并尝试查找引用修改后的属性的所有字符串。这是一个乏味且容...
Entities 或 DTO – 应该使用哪种投影?
JPA 和 Hibernate 允许你在 JPQL 和 Criteria 查询中使用 DTO 和实体(Entity)作为投影。当我在在线培训或研讨会上谈论 Hibernate 的性能时,经常被问到,使用哪种投影是否重要。答案是:是的!为用例选择正确的投影可能会对性能产生巨大的影响。我并不是说只检索你需要的数据。很明显,检索不必要的信息不会为你带来任何性能优势...