如何开始

你可以通过git下载:git clone git@github.com:hunzsig/h-assets.git

也可以通过composer:composer install

建造一个index.php

你可以在根目录构建一个index.php
如果是composer你应该把 /h-php/hHttp.php 修改为 /verdor/hunzsig/h-php/hHttp.php

<?php define('CONFIG_PATH', __DIR__ . '/config.php'); // 可宏定义一个配置文件路径,覆盖原有的config $hphpPath = realpath(__DIR__ . '/h-php'); require __DIR__ . "/h-php/hHttp.php"; $hphp = new Main(); // 访问 http://127.0.0.1:port/external/helloWorld $hphp->external('helloWorld', __DIR__ . '/myExternal/helloWorld.php'); $hphp->external('sql', __DIR__ . '/myExternal/sql.php'); $hphp->run(); ?>

打包

打包会在设定的根目录下生成一个dist目录,加密混淆并压缩优化

打包需要 -c 参数来定义你的config文件
根目录情况下:

php ./h-php/hPackage.php -c ./config.php php ./h-php/hPackage.php -c ./h-php/hPhp.config.php // 默认情况下 php ./h-php/hPackage.php -c ./verdor/hunzsig/h-php/hPhp.config.php // 默认composer情况下

composer下:

php ./verdor/hunzsig/h-php/hPackage.php -c ./config.php

测试接口地址

http://host/external/test 如果不想public接口暴露在scope列表中,函数包含“__”即可 如:edit__ 参考 UserModelInfoModel

Map展示地址

http://host/external/map

测试接口地址

你可以在index使用external方法,绑定自定义的php执行路径

http://host/external/sql

搜索例子1

select * from "default".system_data where (data#>>'{project_name,name}')::text like '%系统%';

搜索例子2

select * from "default".system_data where ("data"->'server_pre_alert_limit'->'value')::text::int > 5;

前端json搜索语法

{project_name,name} % #TT || (({project_name,name} % #系统 || {project_name,name} != #xxx) && {server_pre_alert_limit,value} > #1 && ({server_pre_alert_limit,value} > #0 || {server_pre_alert_limit,value} < #100000000))

[ n ] isNull {?,?,?} n # [ !n ] isNotNull {?,?,?} !n # [ % ] like {?,?,?} % #??? [ !% ] notLike {?,?,?} !% #??? [ = ] equalTo {?,?,?} = #??? [ > ] greaterThan {?,?,?} > #??? [ < ] lessThan {?,?,?} < #??? [ >= ] greaterThanOrEqualTo {?,?,?} >= #??? [ <= ] lessThanOrEqualTo {?,?,?} <= #??? [ <> , != ] notEqualTo {?,?,?} <> #??? {?,?,?} != #??? [ >< ] between {?,?,?} >< #???,??? [ !>< ] notBetween {?,?,?} !>< #???,??? [ * ] any {?,?,?} * #???,???,???... [ ^ ] in {?,?,?} ^ #???,???,???... [ !^ ] notIn {?,?,?} !^ #???,???,???...

后端sql模型讲解

连贯写法 schemas table 必须在前,否则field等自动失效处理
select one update insert insertAll delete count 等作为终结语,后续连贯断开

$this->db()->schemas('default')->table('system_data') ->field('key,value') ->in('key', $key) ->multi();

字段闭包(默认)
等于 ( "a" = 1 or "b" = 1 ) and( "c" = 1 or "d" = 1 or "e" = 1 )

$this->db()->table('test')->equalTo('a',1) ->equalTo('b',1) ->closure('or') ->equalTo('c',1) ->equalTo('d',1) ->equalTo('e',1) ->closure('or');

全局闭包
等于 (( "a" = 1 or "b" = 1 ) or "c" = 1 or "d" = 1 or "e" = 1 )

$this->db()->table('test') ->equalTo('a',1) ->equalTo('b',1) ->closure('or') ->equalTo('c',1) ->equalTo('d',1) ->equalTo('e',1) ->closure('or',true);

直接插入bean写法(insert update delete需要try)

try { $this->db()->schemas('default')->table('system_data')->insert($bean->toArray()); } catch (Exception $e) { return $this->error($e->getMessage()); }

插入可以手动获取lastID(在无序列表中自动获取可能会产生严重的错误)

try { $this->db()->schemas('default')->table('system_data')->insert($bean->toArray()); $lastId = $this->db()->lastInsertId(); } catch (Exception $e) { return $this->error($e->getMessage()); }

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。