prophp / bin-php
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"