xin/process 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xin/process

最新稳定版本:v1.0.0

Composer 安装命令:

composer require xin/process

包简介

基于 symfony/process 实现的 Process App Work 处理器,可以让您的应用程序更便捷的集成第三方外部程序。

README 文档

README

介绍

基于 symfony/process 实现的 Process App Work 处理器,可以让您的应用程序更便捷的集成第三方外部程序。

  • 集成Conda环境支持,可以更自由的切换不通Conda Env Python环境。

安装教程

composer require xin/process

使用说明

基本用法

<?php

use Symfony\Component\Process\Exception\ProcessFailedException;
use Xin\Process\Python\Python;

require_once './vendor/autoload.php';

$python = Python::fromShellCommandline('-i');
try {
    $python->mustRun();
} catch (ProcessFailedException $e) {
    var_dump($e->getMessage(), $e->getProcess()->getErrorOutput());
}

使用Conda切换环境

<?php

use Symfony\Component\Process\Exception\ProcessFailedException;
use Xin\Process\Python\Python;

require_once './vendor/autoload.php';

$python = Python::fromShellCommandline('-i');
try {
    $python->useCondaEnv('test')->setTty(true)->mustRun();
} catch (ProcessFailedException $e) {
    var_dump($e->getMessage(), $e->getProcess()->getErrorOutput());
}

Conda使用

<?php

use Symfony\Component\Process\Exception\ProcessFailedException;
use Xin\Process\Python\Conda;

require_once './vendor/autoload.php';
$conda = new Conda([]);

// 创建环境
var_dump($conda->create('test2'));

// 环境列表
var_dump($conda->envs());

// 移除环境
var_dump($conda->remove('test2'));

集成第三方外部程序使用

<?php

use Symfony\Component\Process\Exception\ProcessFailedException;
use Xin\Process\Python\Conda;

require_once './vendor/autoload.php';

class DemoAppWork extends PythonAppWork
{

    // 获取第三方应用程序的工作目录
	protected function getWorkDirectory(bool $valid = false)
	{
		return __DIR__;
	}

    // 定义第三方应用的能力
	public function ls($fail = false)
	{
		return $fail ? $this->processRunOrFail('ls')->getOutput() : $this->processRun('ls')->getOutput();
	}

    // 返回第三方应用使用的Conda环境
	protected function getDefaultCondaEnv()
	{
		return "demo";
	}
}

try {
	$app = new DefaultAppWork([]);
	var_dump($app->ls(true));
} catch (ProcessFailedException $e) {
	var_dump($e->getProcess()->getErrorOutput());
}

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2024-12-16