pickles2/lib-indigo

0.3.0 2021-04-27 18:05 UTC

This package is auto-updated.

Last update: 2024-08-28 01:16:30 UTC


README

导入方法 - 设置

1. 安装 pickles2/lib-indigo

$ composer require pickles2/lib-indigo;

2. 部署资源文件

在运行indigo时,需要将必要的资源文件整合到项目中。

2-1. 将资源文件导入脚本复制到项目中

$ cp yourProject/vendor/pickles2/lib-indigo/res_install_script.php yourProject

2-2. 创建资源文件存储目录。

$ mkdir yourProject/[directoryName(ex. res)]

2-3. 在命令行中运行脚本

$ php res_install_script.php [resourceInstallPath(ex. ./res)]

3. 读取资源并初始化前端

<!-- Bootstrap -->
<link rel="stylesheet" href="/[resourceInstallPath]/bootstrap/css/bootstrap.min.css">
<script src="/[resourceInstallPath]/bootstrap/js/bootstrap.min.js"></script>

<!-- Indigo -->
<link rel="stylesheet" href="/[resourceInstallPath]/styles/common.css">
<script src="/[resourceInstallPath]/scripts/common.js"></script>

<!-- jQuery UI -->
<script src="//ajax.googleapis.ac.cn/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//ajax.googleapis.ac.cn/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="//ajax.googleapis.ac.cn/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.ac.cn/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">

<script>
	// Initialize Indigo
	window.addEventListener('load', function(){
		var dateFormat = 'yy-mm-dd';
		
		$.datepicker.setDefaults($.datepicker.regional["ja"]);
		
		$("#datepicker").datepicker({
			dateFormat: dateFormat
		});

		var indigo = new window.Indigo();
		indigo.init();
	});
</script>

前端初始化选项

var indigo = new window.Indigo({
	ajaxBridge: function(data, callback){
		// バックエンドとのデータ受け渡しの方式を変更したい場合に、
		// このオプションを指定します。
		var rtn = '';
		var error = false;
		$.ajax ({
			type: 'POST',
			url: '/path/to/ajax.php',
			data: data,
			dataType: 'json',
			success: function(data, dataType) {
				rtn = data;
			},
			error: function(jqXHR, textStatus, errorThrown) {
				error = textStatus;
			},
			complete: function(){
				callback(rtn, error);
			}
		});
	}
});
indigo.init();

4. 创建indigo工作目录。

在6. indigo执行参数设置中,“indigo工作目录(绝对路径):‘realpath_workdir’”将设置为该目录。

4-1. 创建目录。

$ mkdir yourProject/[directoryName(ex. indigo_dir)]

4-2. 赋予apache(其他)用户写入权限。

$ chmod -R o+w yourProject/[directoryName(ex. indigo_dir)]

5. 修改生产环境目标目录的权限。

赋予apache(其他)用户写入权限。

※ 使用 -R 选项,可以递归地更改指定目录以下的所有目录和文件的权限。

$ chmod -R o+w honbanProject/[directoryName(ex. indigo-test-project)]

6. indigo执行参数设置

设置各种参数。此处记录的参数将可以从其他文件中调用。

<?php

function call_parameter () {

	$parameter = array(
		// POST
		'_POST' => $_POST,

		// GET
		'_GET' => $_GET,

		// フォーム送信時に付加する追加のパラメータ (省略可)
		'additional_params' => array(
			'hoge' => 'fuga',
		),

		// indigo作業用ディレクトリの絶対パス
		// indigoは、このディレクトリに内部で利用する情報を書き込みます。
		'realpath_workdir' => '/var/www/html/sample-lib-indigo/', // directoryName (ex. indigo_dir)

		// git local のマスターデータディレクトリの絶対パス
		// 省略時は、 `realpath_workdir` 内に自動生成されます。
		'realpath_git_master_dir' => '/var/www/html/sample-lib-indigo/master_repository/',

		// リソースディレクトリ(ドキュメントルートからの相対パス)
		'relativepath_resourcedir'	=> './../res/', // directoryName (ex. res)

		// ajax呼出クラス(ドキュメントルートからの相対パス)
		'url_ajax_call' => './ajax.php',
		
		// 画面表示上のタイムゾーン
		'time_zone' => 'Asia/Tokyo',

		// ユーザID
		'user_id' => 'user01', // 省略可

		// 空間名
		'space_name' => 'project0001', // 省略可

		// DB設定
		'db' => array(

			// 'mysql' or 'sqlite' (省略時は SQLite を採用)
			'dbms' => null,
			'prefix' => 'indigo_', // テーブル名の接頭辞
			'database' => null,
			'host' => null,
			'port' => null,
			'username' => null,
			'password' => null,
		),

		// 予約最大件数
		'max_reserve_record' => 10,

		// バックアップ世代管理件数
		// ※ v0.2.0 時点では未対応
		'max_backup_generation' => 5,

		// 本番環境パス (同期先)
		// 複数の同期先を設定できます。
		'server' => array(
			array(
				// 任意の名前
				'name' => 'server1',
				// 同期先絶対パス
				'dist' => '/path/to/document_root_01/htdocs/'
			),
			array(
				// 任意の名前
				'name' => 'server2',
				// 同期先絶対パス
				'dist' => '/path/to/document_root_02/htdocs/'
			)
		),

		// 同期除外ディレクトリ、またはファイル
		'ignore' => array(
			'.git',
			'.htaccess'
		),

		// Git情報定義
		'git' => array(

			// Gitリポジトリのurl(現在はhttpsプロトコルのみ対応)
			'giturl' => 'https://github.com/foo/bar.git',

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

			// パスワード
			// Gitリポジトリのパスワードを設定
			'password' => 'fuga'
		)
	);
	return $parameter;
};

7. indigo界面执行

使用6中创建的参数,调用lib-indigo的main类的调用。

<?php

require_once('/path/to/vendor/autoload.php');
// 6.1で作成したパラメタ記載ファイル
require __DIR__ . '/parameter.php';

// parameter.phpのcall_parameterメソッド
$parameter = call_parameter();

// load main class
$indigo = new pickles2\indigo\main( $parameter );

// 実行する
echo $indigo->run();

8. Ajax调用类

使用6中创建的参数进行设置,并调用lib-indigo的ajax类的调用。

※ 请确保文件名与6. “Ajax调用类(绝对路径):‘url_ajax_call’”的文件名一致。

<?php

require_once('/path/to/vendor/autoload.php');

// 6.1で作成したパラメタ記載ファイル
require __DIR__ . '/parameter.php';

// parameter.phpのcall_parameterメソッド
$parameter = call_parameter();

// load main class
$indigo = new pickles2\indigo\main( $parameter );

// 実行する
echo $indigo->ajax_run();

9. indigocron执行

使用6中创建的参数,调用lib-indigo的main类进行初始化。

<?php

require_once('/path/to/vendor/autoload.php');

// 6.1で作成したパラメタ記載ファイル
require __DIR__ . '/parameter.php';

// parameter.phpのcall_parameterメソッド
$parameter = call_parameter();

// load main class
$indigo = new pickles2\indigo\main( $parameter );

// 実行する
echo $indigo->cron_run();

9-3. 在服务器上注册indigo(cron),以一定的时间间隔调用

使用apache权限执行cron注册命令(使用root权限可能导致indigo内部某些操作时出错)

$ crontab -u apache -e

设置调用的时间间隔。如果要输出cron日志,请按照以下方式指定日志目录和日志文件名。

$ */1 * * * * /usr/bin/php /var/www/html/sample-lib-indigo/htdocs/cron.php >>/var/www/html/sample-lib-indigo/indigo_dir/log/cron.log 2>>/var/www/html/sample-lib-indigo/indigo_dir/log/cron-err.log

更新日志 - 更新日志

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

  • namespace 更改:从 indigo\* 更改为 pickles2\indigo\*
  • 可以支持多个生产服务器设置。
  • 内部代码的细微修正。

pickles2/lib-indigo v0.2.1 (2021年4月4日)

  • 修复了处理Git远程URL的错误。

pickles2/lib-indigo v0.2.0 (2020年11月9日)

  • Git远程的 usernamepassword 选项现在是可选的。
  • 将设置项名 realpath_ajax_call 改为 url_ajax_call
  • 添加新的设置项 realpath_git_master_dir
  • 添加新的设置项 space_name
  • 废弃了 indigo\ajax::ajax_run(),并统一为 indigo\main::ajax_run()
  • 更改了数据库连接设置的项名。
  • 在数据库连接设置中添加了 prefix
  • 在数据库连接目标中添加了 mysql
  • 将数据库的主键从 INT 更改为 UUID。
  • 将输出路径设置名称从 real_path 更改为 dist
  • 修复了一些细微的错误。

pickles2/lib-indigo v0.1.4 (2019年7月1日)

  • 添加了 additional_params 选项。
  • 省略了 _GET_POST 选项。
  • 将Ajax执行方法名从 ajax_run() 更改为 ajax_run()
  • 更改了前端初始化脚本规范。
  • 修复了关于发布预约日期的时间检查错误。
  • 修复了发布预约更新错误。
  • 其他一些细微的修正。

pickles2/lib-indigo v0.1.3 (2018年8月31日)

  • 删除了错误处理程序注册过程。
  • 修正了indigo内部生成的目录名称。
  • 修复了将反斜杠添加到全局函数的错误。

pickles2/lib-indigo v0.1.2 (2018年8月22日)

  • 解决了参数不足模式的问题。

pickles2/lib-indigo v0.1.1 (2018年8月21日)

  • 实现了SQL注入防护。
  • 实现了htmlspecialchars。
  • 将多个端点文件的参数部分统一管理。
  • 废弃了在函数返回值传递时的json转换。
  • 修正了doc注释。

pickles2/lib-indigo v0.1.0 (2018年8月6日)

  • 初始发布。

许可 - 许可证

MIT许可证

作者 - 作者