技术圈开发者交流群:

在 CentOS 7.9 中使用 Yum 快速安装 PHP 8.3

目前,CentOS 7.9 已经算是很古老的系统了,但仍然还在很多公司中使用。安装 PHP 有编译安装,也可以使用 Yum 安装,前者较为复杂,耗时耗力,后者就很简单而且很快。但是官方的 Yum 中自带的 PHP 版本也只有很古老的 PHP 5.4 了,要想安装比较新的 PHP 8 就需要使用第三方提供的 Yum 源了。

Remi's RPM repository(简称 Remi 仓库)是由法国开发者 Remi Collet 维护的一个针对 Red Hat Enterprise Linux(RHEL)及其衍生发行版(如 CentOS、Oracle Linux 等)的第三方软件仓库。

所以,这里我就使用 Remi 源安 PHP 8.3 做一下介绍。

Remi 源包含了较新的 PHP 版本,使用 Yum 来添加 Remi 源,可能需要提前安装 epel-release。

PHP 2023年12月09日 473

主流编程语言的包管理工具

术业有专攻,闻道有先后。班门弄斧,请指教。

编程语言五花八门,在历史的洪流中,不断有新的编程语言、新的工具诞生。有的老牌语言依然是中流砥柱,有的新生代语言突飞猛进,后生可畏。

一个编程语言要想发展起来,包管理工具必不可少,包的数量与质量,决定着编程语言的周边生态的好坏。

工具 2023年03月09日 1198

Nginx 和 PHP 整合

NginxPHP的组合主要是通过Fastcgi通信,通信方式主要有两种:一种是TCP,一种是unix socket

NginxPHP部署在不同机器上选择第一种,部署在同一台机器上可以选择第二种。

工具 2020年03月16日 1447

PHP-Casbin 中 ABAC 的使用方法

PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。

ABAC基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。

ABAC的官方实例如下:

PHP 2020年03月06日 2708

Laravel从现有数据库逆向生成数据库迁移文件,包括索引和外键!

熟悉laravel的同学都知道,laravel的数据迁移和数据填充,能够随着源代码的改变而同步记录同步数据库结构的变化,也就是对数据库的版本控制。

但是,有的项目开发之初,数据库结构的变化会比较频繁,每个都手动创建migrate文件的,工作量会比较大,或者老项目已有数据库,如果手动为所有的已存在的表去创建迁移文件的会非常耗时,还容易出错。

这里,就给大家分享一下如何逆向生成迁移文件。

PHP 2018年01月04日 1791

Laravel数据库迁移和填充(支持中文)

经常我们做项目都团队协作开发,每个人都在自己本地的数据库,如果你曾经出现过让同事手动在数据库结构中添加字段的情况,数据库迁移可以解决你这个问题。

不仅如此,在线上部署的时候,也避免了手动导入数据库或手动修改数据结构的麻烦,数据迁移帮你方便的维护着数据结构。

数据填充,让我们测试的时候需要大量的假数据不再一条一条的去造数据,可以轻松的批量填充大量数据。

本文基于Laravel5.5,其他版本大同小异。

PHP 2017年10月28日 70719

PHP时间转换今天昨天前天几天前

经常在朋友圈,QQ空间、微博上看到动态的发布时间、评论时间,都显示,昨天,前天,几天前,比起直接显示几月几日几分几秒要优雅的多。

于是自己的项目也想采用这种优雅直观的方式,网上找了各种计算相差几天的的例子,都是直接将时间戳相见除以86400,比如现在是17:08,动态更新的时间为前天22:00,这种方式计算的相差天数为1,而不是两天前。

实际情况应该是,昨天任何时间都算一天前,前天任意时间都算2天前,所以自己琢磨了一番,去动态更新时间与今天23:59:59相差的时间秒数与86400(24 x 3600)相除后,向下取整,这样就得到了相差的天数,比如昨天00:00~昨天23:59:59的任何时间与今天的23:59:59,都相差 86400~(86400 x 2) 天,也就是2天。


/**
 * 获取已经过了多久
 * PHP时间转换
 * 刚刚、几分钟前、几小时前
 * 今天昨天前天几天前
 * @param  string $targetTime 时间戳
 * @return string
 */
function get_last_time($targetTime)
{
    // 今天最大时间
    $todayLast   = strtotime(date('Y-m-d 23:59:59'));
    $agoTimeTrue = time() - $targetTime;
    $agoTime     = $todayLast - $targetTime;
    $agoDay      = floor($agoTime / 86400);

    if ($agoTimeTrue < 60) {
        $result = '刚刚';
    } elseif ($agoTimeTrue < 3600) {
        $result = (ceil($agoTimeTrue / 60)) . '分钟前';
    } elseif ($agoTimeTrue < 3600 * 12) {
        $result = (ceil($agoTimeTrue / 3600)) . '小时前';
    } elseif ($agoDay == 0) {
        $result = '今天 ' . date('H:i', $targetTime);
    } elseif ($agoDay == 1) {
        $result = '昨天 ' . date('H:i', $targetTime);
    } elseif ($agoDay == 2) {
        $result = '前天 ' . date('H:i', $targetTime);
    } elseif ($agoDay > 2 && $agoDay < 16) {
        $result = $agoDay . '天前 ' . date('H:i', $targetTime);
    } else {
        $format = date('Y') != date('Y', $targetTime) ? "Y-m-d H:i" : "m-d H:i";
        $result = date($format, $targetTime);
    }
    return $result;
}
PHP 2017年10月21日 40528

laravel批量更新多条记录

熟悉laravel的童鞋都知道,laravel有批量一次性插入多条记录,却没有一次性按条件更新多条记录。

是否羡慕thinkphp的saveAll,是否羡慕ci的update_batch,但如此优雅的laravel怎么就没有类似的批量更新的方法呢?

PHP 2017年10月13日 7709
鄂ICP备19028750号-1 @copyright 2024 tech1024.com