Whisp — 一个 PHP SSH 服务器
WhispPHP 是一个纯 PHP 的 SSH 服务器。它是创建 PHP SSH 应用的最简单方式,允许你通过极度简化的方式运行 Laravel 命令行应用。如果你正在启动一个新的应用,你可以使用 Ashley 提供的现有项目模板,也可以使用 Composer 将 Whisp 添加到现有项目中:composer require whispphp/whisp然...
PHP Fiber: PHP 如何最终向异步编程靠拢
多年来,PHP 一直是 web 开发的首选语言,为从小型博客网站到脸书等大型平台(至少在早期)的一切提供动力。但是,尽管 PHP 发展迅速,但直到现在,它在异步编程方面一直有点保守。随着 PHP Fiber 在 PHP 8.1 中的出现(以及 PHP 8.4 中急切的调整),PHP 似乎终于拥抱了并发的。那么,让我们深入了解一下 PHP Fiber:它是什么...
[跨境电商]社交维护:一种提升客户满意度并提升销售的路径
想知道如何让你的社交媒体工作更有利可图吗?寻找通过社交平台提高客户保留率和获取率的方法?本文中,你将了解如何实施社会关怀策略,以增强客户体验并驱动业务增长。为什么社交维护(Socail Care)对营销人员很重要尽管算法在变化,平台有起伏,但有一件事是不变的:你的客户正在使用社交媒体作为支持渠道。他们在社交媒体上研究、了解、评论和购买品牌。无论他们使用的是哪...
[Laravel 扩展包]PHP DevTools 控制台
多年来,前端开发人员一直享受着基于浏览器的开发工具的奢侈,可以实时检查、调试和测试他们的 HTML、CSS 和 JavaScript。然而,由于 PHP 的服务器端特性,PHP 开发人员,特别是那些使用 Laravel 的开发人员,并没有得到同样的便利。由于 Tony Lea 创建了一个新的Chrome扩展,这种情况即将改变。此扩展利用了 Spatie 的 ...
PHP 8.4: CSV: 必须提供 $escape 参数
PHP 提供了内置的 CSV 功能,允许读取和写入 CSV 文件。此实现存在一些有问题的转义行为,正在逐步淘汰。CSV 功能使用三个字符来分隔/separate(默认为,)、包围/enclose(默认为")和转义/escape(目前默认为\)。通常情况下,如果数据字段中包含 enclose 字符,则通过重复该字符来进行转义。然而,PHP 的实现允许通过指定转...
自定义 Filament 根目录 ——避免 'Route [filament.admin.auth.login] not defined' 报错
要在 Laravel 中创建后台管理面板,Filament 将帮你大大节省很多时间。在构建 CRUD 风格的后台应用时,它提供了许多样板文件。通常情况下,Filament 将在 admin 区域(/admin 等)中运行,而主应用则在域根目录上运行。但是,如果你想让整个应用作为 Filament 应用,并在应用根目录中运行呢?更新 Filament 使之在域...
使用 LibreOffice 进行文件转换的 Laravel 包
当处理多种文件格式时,文档转换可能会很痛苦。如果你正在构建一个涉及文档转换的应用程序,它将变得更加具有挑战性。如果你要处理多种文件格式,如 .docx、.pdf、.odt 等,以及它们之间的相关转换,你可能需要使用不同的包。比如,可以使用 barryvdh/laravel-dompdf 包将 HTML 转换为 PDF,使用 phpoffice/phpword...
Laravel 访问器中的值对象及性能提升
Laravel 的 Eloquent ORM 通过内置缓存和值对象支持增强了访问器功能。这些特性能够有效地处理复杂的计算和结构化数据,同时保持干净、可维护的代码。当处理计算成本高昂的操作或需要将复杂的数据结构表示为适当的对象而不是普通数组时,这种方法被证明特别有价值。protected function complexStats(): Attribute ...
Laravel 中缺失的 owns 方法
虽然 Laravel 的 Eloquent ORM 已经相当强大且覆盖率大部分用例的基本用法,但总还是有所缺失。比如,Newton Job 最近分享了一个他在项目中使用的 owns() 方法。该方法很简单且方便。我们首先来看看这个方法:class User extends Authenticatable { /** * Determine ...
为什么 whereDate() 可能会影响性能以及如何修复
你是否曾经运行过一个 Laravel 作业,突然开始超时,你盯着你的 SQL 想知道为什么?下例是我调试一个长时运行的利息计算作业,直到我发现了罪魁祸首: