PHP包括:PHP Sandbox,PHP Processor
PHP Sandbox
提供了一种编写 PHP 代码的简单方法,该代码可直接在服务器上执行。可以快速的编写一个api用于测试等。

代码
<?php
/**
* @var \Fusio\Engine\RequestInterface $request
* @var \Fusio\Engine\ContextInterface $context
* @var \Fusio\Engine\ConnectorInterface $connector
* @var \Fusio\Engine\Response\FactoryInterface $response
* @var \Fusio\Engine\ProcessorInterface $processor
* @var \Fusio\Engine\DispatcherInterface $dispatcher
* @var \Psr\Log\LoggerInterface $logger
* @var \Psr\SimpleCache\CacheInterface $cache
*/
$id = $request->get('id'); // returns a path or query parameter
$payload = $request->getPayload(); // returns the request payload
$arguments = $request->getArguments(); // returns all available arguments as array
// returns a configured connection, in case of a SQL connection this returns a doctrine DBAL instance which you could
// now use to query the database
//$connection = $connector->getConnection('mysql');
return $response->build(200, [], [
'id' => $id,
'uriFragments' => $arguments,
'payload' => $payload,
]);
PHP Processor
可将PHP Sandbox的代码写入到文件,用文件路径去调用执行,功能上感觉没啥差别,完整的 API 文档。

貌似源码更新了吧,官方文档中的函数并不可用,以下是我测试过的代码,完全可用。
函数源码位置:fusio/vendor/doctrine/dbal/src/Result.php
#my_test.php
#我的文件路径:/fusio/public/apps/fusio/my_test.php
<?php
/**
* @var \Fusio\Engine\RequestInterface $request
* @var \Fusio\Engine\ContextInterface $context
* @var \Fusio\Engine\ConnectorInterface $connector
* @var \Fusio\Engine\Response\FactoryInterface $response
* @var \Fusio\Engine\ProcessorInterface $processor
* @var \Fusio\Engine\DispatcherInterface $dispatcher
* @var \Psr\Log\LoggerInterface $logger
* @var \Psr\SimpleCache\CacheInterface $cache
*/
/** @var \Doctrine\DBAL\Connection $connection */
$connection = $connector->getConnection('pandian');
$count = $connection->fetchOne('SELECT COUNT(*) FROM tbgoods');
// $result = $connection->fetchFirstColumn('SELECT * FROM tbgoods');//可用,只有一列
// $result = $connection->fetchAllKeyValue('SELECT * FROM tbgoods');//显示第一列和第二列的值
// $result = $connection->fetchNumeric('SELECT * FROM tbgoods ');//取得第一条记录
// $result = $connection->fetchAllNumeric('SELECT * FROM tbgoods');//无列名,可获取全部数据
// $result = $connection->fetchAssociative('SELECT * FROM tbgoods');//取得第一条记录
$result = $connection->fetchAllAssociative('SELECT * FROM tbgoods');//列名完整,可获取全部数据
// $result = $connection->fetchAllAssociativeIndexed('SELECT * FROM tbgoods');//ID无列名,可获取全部数据
return $response->build(200, [], [
'totalCount' => $count,
'entries' => $result,
]);
Response – 200
{
"totalCount": 1259,
"entries": {
"id": 318844,
"goodscode": "012119001",
"goodsname": "西芹",
"BaseBarCode": "0800744"
}
}
总结:这些Action下php的类目前看主要应用应该不是为了查询数据使用,因为查询数据的类用起来比这方便多了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。