pickles2/lib-plum

0.3.1 2021-05-25 11:25 UTC

This package is auto-updated.

Last update: 2024-08-25 18:45:17 UTC


README

这是一个提供将Web项目部署到测试环境的功能的库。

安装 - 安装

$ composer require pickles2/lib-plum

设置方法 - 设置

客户端

<link rel="stylesheet" href="/path/to/vendor/pickles2/lib-plum/dist/plum.css" />
<script src="/path/to/vendor/pickles2/lib-plum/dist/plum.js"></script>


<div id="plum-area"></div>

<script>
var plum = new Plum(
	document.getElementById('plum-area'),
	{
		'gpiBridge': function(data, callback){
			$.ajax({
				'url': '/api.php',
				'method': 'POST',
				'data': {
					'data': data
				},
				'success': function(result){
					callback(result);
				}
			});
		}
	}
);
plum.init();

window.addEventListener('message', function(e){
	plum.broadcastMessage(e.message);
});
</script>

服务器端

<?php
// 実行環境に合わせてパスを設定
require_once('./vendor/autoload.php');

$plum = new hk\plum\main(
	array(
		// Plumが内部で使用するデータ保管用ディレクトリ
		// (書き込みが許可されたディレクトリを指定)
		'data_dir' => '/path/to/data_dir/',

		// ステージングサーバ定義
		'staging_server' => array(

			// ステージングサーバの数だけ設定する
			//
			//   string 'name':
			//     - ステージングサーバ名(任意)
			//   string 'path':
			//     - ステージングサーバ(デプロイ先)のパス
			//   string 'url':
			//     - ステージングサーバのURL
			//       Webサーバのvirtual host等で設定したURL
			//
			array(
				'name' => 'Staging 1',
				'path' => './../repos/stg1/',
				'url' => 'http://stg1.localhost/'
			)
		),

		// Git情報定義
		'git' => array(
			// リモートのURL
			'url' => 'https://host.com/path/to.git',

			// ユーザ名
			// Gitリポジトリのユーザ名を設定。
			'username' => 'user',

			// パスワード
			// Gitリポジトリのパスワードを設定。
			'password' => 'pass'
		),

		// 基本認証パスワードのハッシュ生成アルゴリズム名
		// 'bcrypt'|'md5'|'sha1'|'crypt'|'plain'
		'htpasswd_hash_algorithm' => 'crypt',
	)
);
$plum->set_async_callbacks(array(
	'async' => function( $params ){
		/*
		async
		非同期で実行するコールバック関数を拡張します。
		ここで受け取った `$message` を、
		非同期に `$plum->async($params);` へ転送してください。
		*/
	},
	'broadcast' => function( $message ){
		/*
		メッセージをブラウザに送るコールバック関数を拡張します。
		ここで受け取った `$message` を、
		フロントエンドの `plum.broadcastMessage($message);` へ転送してください。
		*/
	}
));

$json = $plum->gpi( $_POST['data'] );

header('Content-type: application/json');
echo json_encode( $json );

异步重调

<?php
require_once('./vendor/autoload.php');

$plum = new hk\plum\main(

	/* 中略 */

);

$json = $plum->async( $params );

授予部署目录的写入权限

以下目录没有执行用户写入权限时,请授权。

  • staging_server->path ・・・ 部署服务器的路径
  • data_dir ・・・ 数据目录的路径

更新日志 - 变更日志

pickles2/lib-plum v0.3.1 (2021年5月25日)

  • 修正了在没有Git远程分支master时检查出的失败问题。
  • 添加了选项htpasswd_hash_algorithm
  • 其他细节修正。

pickles2/lib-plum v0.3.0 (2021年4月28日)

  • 将选项temporary_data_dir重命名为data_dir
  • 在本地主仓库中执行到git fetch为止,而不是执行git pull,以节约磁盘空间。
  • 改善了UI。为每个测试环境添加了详细信息页面。
  • 为每个测试环境添加了设置密码的功能。
  • 可以将耗时操作异步执行。

pickles2/lib-plum v0.2.0 (2020年11月7日)

  • 支持远程仓库在本地磁盘上的情况。
  • 废弃了选项git->protocolgit->hostgit->repository_GET_POSTadditional_params,将preview_server重命名为staging_server
  • 添加了选项temporary_data_dir
  • 更改了客户端库的文件结构。
  • 隐藏了CSS、JS以防止外部影响。
  • 更改了调用JavaScript环境的方式。
  • 添加了GPI。
  • 其他细节修正。

pickles2/lib-plum v0.1.3 (2020年11月3日)

  • 修复了一些小错误和内部代码的修正。

pickles2/lib-plum v0.1.2 (2019年6月12日)

  • 添加了选项additional_params
  • 使选项_GET_POST可省略。

pickles2/lib-plum v0.1.1 (2018年10月19日)

  • 当Git远程仓库的ID和密码未设置时,改为无认证访问。
  • 解析Git仓库的URL以补充配置。可以以如下完整URL的形式设置:https://user:pass@host.com/path/to.git
  • 修正了与OS命令注入相关的漏洞。

pickles2/lib-plum v0.1.0 (2018年6月7日)

  • 初始发布。

许可证 - 许可证

版权 (c)Kyota Hiyoshi, Tomoya Koyanagi, 和 Pickles项目
MIT许可证 https://open-source.org.cn/licenses/mit-license.php

作者 - 作者