PHP

ext-php-rs 使用 RUST 更加方便的构建 PHP 扩展

2022-10-31

ext-php-rs 是一个用于构建PHP扩展的RUST库,比起其他的php的绑定库,该库使用起来 更加的方便和快捷。

官方宣称的特性为:

  • 易于使用,内置的宏抽象了 zend API,特别是参数类型交互
  • 轻量级,该库会自动编写胶水代码,只需要写功能即可。
  • 可扩展,可以使用 IntoZvalFromZval 定义自己的类型用于参数和返回类型。

迄今为止, 使用rust写php扩展,并没有太好的方式与php进行交互,建议使用rust写 基础类库。

基于 Solder 使用 Rust 来为 PHP 写扩展

2020-07-18

阅读 phper, phper 0.2 已可以使用,

本文使用 Solder 库来实现PHP扩展程序,它是基于 php-rs 库的试验性项目,实现了php扩展的函数处理。 满足了字符串和数字类型基本要求。

soder 源库地址为 github , 这里使用的是 fork 的库, github.com/erasin/solder

2020-09-17 : 项目 XX/php-rust 中提供了更多的类型处理。简化函数注册流程。

创建项目

使用 cargo 来创建项目,然后创建编译配置文件.cargo/config

cargo new --lib rs-tool 
cd rs-tool
mkdir .cargo
touch config

编辑 .cargo/config,遵循toml格式。

[build]
rustflags = ["-C", "link-args=-Wl,-undefined,dynamic_lookup"]

php chronos 时间管理库

2020-06-16

Chronos , PHP 时间日历处理库,零依赖。

使用 composer 安装

php composer.phar require "cakephp/chronos:^2.0"
  • Cake\Chronos\Chronos 是不可变的日期和时间对象。
  • Cake\Chronos\Date 是不可变的日期对象。 is a immutable date object.
  • Cake\Chronos\MutableDateTime 是可变的日期和时间对象。 is a mutable date and time object.
  • Cake\Chronos\MutableDate 是可变的日期对象。 is a mutable date object.
  • Cake\Chronos\ChronosInterval 是 DateInterval 的扩展。 is an extension to the DateInterval object.

PHP 多版本运行环境

2020-05-29

步骤和原理

  1. PHP 官网下载 php 安装包
  2. 分配安装路径
  3. 修改 php-fpm 端口

下载和安装

打开 PHP 官网下载 选择需要的版本,比如 PHP 7.2.31

wget https://www.php.net/distributions/php-7.2.31.tar.gz
tar xvf php-7.2.31.tar.gz
cd ./php-7.2.31