prophp/bin-php

v1.0.0 2023-02-18 19:44 UTC

README

README

◦ 使用要求

  • PHP 8.0+
  • Composer
  • Linux (可以在任何操作系统上使用 Docker daemon:Windows & macOS)

◦ 包开发要求

设置 Docker 容器的推荐包: prophp/docker-bridge (docker-compose 需要)

◦ 安装

composer require prophp/bin-php --dev

▸ 初始化 bin/_php 目录

vendor/bin/php init

可选

bin/_php/config/var-www-html.dist.txt 重命名为 bin/_php/config/var-www-html.txt (删除 .dist)

将您的项目目录的 绝对路径 放在那里,不要忘记在末尾加上 /

此配置文件将在显示执行的 PHP 文件的 绝对路径 时将 /var/www/html/ (Docker 镜像中的路径) 替换为其内容

▸ 为 bin/_php/src/example.php 文件创建一个符号链接 bin/example

vendor/bin/php sym

现在您可以使用 bin/example 可执行符号链接了,试试看

bin/example

预期输出

Executing PHP file://<bin/_php/config/var-www-html.txt contents>bin/_php/src/example.php
Hello world!

▸ 构建 php 执行文件 bin/_php/execute-all.php

vendor/bin/php exec

现在您可以在 bin/_php/src/ 目录中执行所有文件。对于 Gitlab CI 非常有用

php bin/_php/execute-all.php

预期输出

Executing PHP file://<bin/_php/config/var-www-html.txt contents>bin/_php/src/example.php
Hello world!

▸ GIT 提交 bin 目录,排除 bin/_php/config 目录

.gitignore

/bin/_php/config/*

bin/example && php bin/_php/execute-all.php 即使从 Composer ( vendor 目录) 中移除了 prophp/bin-php 包也会正常工作

您可以通过使用以下 composer 命令来尝试它

composer remove prophp/bin-php --dev

别忘了安装它以使用其开发工具

◦ 使用方法

▸ 创建一个您想要使用 bin/<symlink> 执行的新 PHP 文件

您可以在 bin/_php/src 目录中创建任何 .php 文件及其子目录

看看 /bin/_php/src/example.php

▸ 重建 bin/_php/src 目录中所有 .php 文件的符号链接

vendor/bin/php sym

▸ 重建一个将执行 bin/_php/src 目录中所有 .php 文件的 bin/_php/execute-all.php 文件

vendor/bin/php exec

◦ 使用示例

▸ 创建一个您想要使用 bin/<symlink> 执行的新 PHP 文件

创建一个 bin/_php/src/create/products.php 文件

#!/usr/bin/env php
<?php

require_once dirname(__DIR__, 4) . "/vendor/autoload.php";

echo "Create products!" . PHP_EOL;

▸ 重建符号链接

vendor/bin/php sym

▸ 使用新创建的符号链接。您可以按 Tab 键使用自动补全功能

bin/create/products

▸ 重建一个执行 bin/_php/src 目录中所有 .php 文件的文件

vendor/bin/php exec

试试看

php bin/_php/execute-all.php

预期输出

Executing PHP file://<bin/_php/config/var-www-html.txt contents>bin/_php/src/example.php
Hello world!

Executing PHP file://<bin/_php/config/var-www-html.txt contents>bin/_php/src/create/products.php
Create products!

◦ GitLab CI

当使用 GitLab CI 时,您需要直接作为 GitLab CI 有问题 (目前) 与符号链接执行 PHP 文件

如果您使用符号链接,GitLab CI 将正确执行它们,但即使您的 .php 文件抛出异常,也不会标记测试为 FAILED (测试将始终成功)

您必须使用 php 才能得到正确的结果!

您可以手动指定某些脚本

.gitlab-ci.yml

test:8.0:
  script:
    - exec "php bin/_php/src/example.php"
    - exec "php bin/_php/src/create/products.php"

或使用新创建的 bin/_php/execute-all.php 文件来一次性执行它们

.gitlab-ci.yml

test:8.0:
  script:
    - exec "php bin/_php/execute-all.php"