llagerlof/moodlerest

MoodleRest 是一个用于查询 Moodle REST Web服务的 PHP 类

2.4.0 2021-04-14 14:47 UTC

This package is auto-updated.

Last update: 2024-09-14 22:06:02 UTC


README

MoodleRest 是一个用于查询 Moodle REST Web服务的 PHP 类。你可以进行 GET 和 POST 请求。

快速入门

确保你已经可以访问 Moodle Web服务。使用此类,你需要一个令牌(由 Moodle 管理员生成),该令牌具有访问所需服务的必要能力。

重要

如果你需要关于 request() 方法的 $parameters 格式的详细解释,请在维基中阅读

进入代码

你有两种方式将此库添加到你的项目中

选项一: 使用 Composer 将其包含到你的项目中。

  • 在你的项目目录中创建或修改文件 composer.json
{
    "require": {
        "llagerlof/moodlerest": "2.4.0"
    }
}
  • composer.json 的同一目录下运行
$ composer install
  • 在你的项目中,使用 composer 自动加载器加载库
<?php
require_once dirname(__FILE__) . '/vendor/autoload.php'

选项二:MoodleRest.php 类包含到你的脚本中。

require_once('MoodleRest.php');

示例 1

查询 Moodle 中 ID 为 1 和 2 的 2 个群组,通过构造函数传递服务器 URL 和令牌。

$MoodleRest = new MoodleRest('http://127.0.0.1/moodle/webservice/rest/server.php', '8f12e614dae30735260a045313caa400');

$groups = $MoodleRest->request('core_group_get_groups', array('groupids' => array(1,2)));

print_r($groups);

示例 2

在构造函数中设置服务器和令牌,并对 Moodle 创建群组进行请求。

$MoodleRest = new MoodleRest('http://127.0.0.1/moodle/webservice/rest/server.php', '8f12e614dae30735260a045313caa400');

$new_group = array('groups' => array(array('courseid' => 2, 'name' => 'Group name', 'description' => 'Group description')));

// The default request's METHOD is to make a GET request, but you can change it to POST. This is recommended when inserting and updating data.
$return = $MoodleRest->request('core_group_create_groups', $new_group, MoodleRest::METHOD_POST);

// If you want the requested URL
echo $MoodleRest->getUrl();

示例 3

查询 ID 为 1 和 2 的 2 个预存 Moodle 群组(类似于示例 1,不需要在构造函数中设置服务器和令牌值)。

$MoodleRest = new MoodleRest();
$MoodleRest->setServerAddress("http://127.0.0.1/moodle/webservice/rest/server.php");
$MoodleRest->setToken('8f12e614dae30735260a045313caa400');
$MoodleRest->setReturnFormat(MoodleRest::RETURN_ARRAY); // Array is default. You can use RETURN_JSON or RETURN_XML too.

// You can enable debugging information using setDebug()
// When debugging is enabled, after each request the built URL and the result returned by the webservice function are printed to the standard output.
$MoodleRest->setDebug();
$arr = $MoodleRest->request('core_group_get_groups', array('groupids' => array(1,2)), MoodleRest::METHOD_GET);

// Note: You can make more requests using the same object

示例 4

使用链式方法进行请求,并以 json 格式返回结果。

/*
The $parameters variable below translates in URL as:
    userlist[0][userid]=5&
    userlist[0][courseid]=2&
    userlist[1][userid]=4&
    userlist[1][courseid]=2"
*/
$parameters = array('userlist' => array(array('userid' => 5, 'courseid' => 2), array('userid' => 4, 'courseid' => 2)));

$json =
    (new MoodleRest())->setServerAddress("http://127.0.0.1/moodle/webservice/rest/server.php")->
    setToken('8f12e614dae30735260a045313caa400')->
    setReturnFormat(MoodleRest::RETURN_JSON)->request('core_user_get_course_user_profiles', $parameters);

echo $json;

更多信息请在维基中查看