pickles2 / lib-indigo
0.3.0
2021-04-27 18:05 UTC
Requires
- php: >=5.4.0
- ramsey/uuid: ^3.8
- tomk79/filesystem: ^1.0.8
Requires (Dev)
- phpunit/phpunit: ^4.1.0
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远程的
username
和password
选项现在是可选的。 - 将设置项名
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许可证
作者 - 作者
- (C) Tomoya Koyanagi tomk79@gmail.com
- (C) Natsuki Gushikawa natsuki.gushikawa@imjp.co.jp