https://github.com/pickles2/lib-plum
https://github.com/pickles2/lib-plum
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/pickles2/lib-plum
- Owner: pickles2
- License: mit
- Created: 2018-02-01T02:15:48.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2021-05-25T11:27:00.000Z (about 5 years ago)
- Last Synced: 2025-08-02T05:08:44.501Z (12 months ago)
- Language: PHP
- Size: 6.03 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
pickles2/lib-plum
======================
ウェブプロジェクトをステージング環境へデプロイする機能を提供するライブラリです。
## インストール - Install
```
$ composer require pickles2/lib-plum
```
## 導入方法 - Setup
### クライアントサイド
```html
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);
});
```
### サーバーサイド
```php
'/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
async( $params );
```
#### デプロイ先のディレクトリに書き込み権限の付与
以下のディレクトリに実行ユーザの書き込み権限が無い場合は、権限を付与します。
- `staging_server->path` ・・・ ステージングサーバ(デプロイ先)のパス
- `data_dir` ・・・ データディレクトリのパス
## 更新履歴 - Change log
### 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->protocol`、 `git->host`、 `git->repository`、 `_GET`、 `_POST`、 `additional_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 repository のURLを解析してコンフィグを補完するようになった。 `https://user:pass@host.com/path/to.git` のような1つの完全な URL の形で設定できる。
- OSコマンドインジェクションの脆弱性に関する修正。
### pickles2/lib-plum v0.1.0 (2018年6月7日)
- Initial Release.
## ライセンス - License
Copyright (c)Kyota Hiyoshi, Tomoya Koyanagi, and Pickles Project
MIT License https://opensource.org/licenses/mit-license.php
## 作者 - Author
- Kyota Hiyoshi
- Tomoya Koyanagi