smtech / reflexive-canvas-lti
LTI工具提供者类,通过API实现“反射”方式回显Canvas
Requires
- php: >=5.6
- battis/appmetadata: ~1.0
- battis/configxml: ~1.0
- battis/data-utilities: ~0.1.3
- myclabs/php-enum: ~1.0
- pear/log: ~1.0
- smtech/canvaspest: ~1.0
- smtech/lti-configuration-xml: ~1.0
- spvsoftwareproducts/lti_tool_provider: ~2.5
README
弃用
该项目自2017年春季以来没有活跃维护,当时Seth Battis角色改变,不再在Canvas(或其他LTI兼容)环境中工作。有兴趣的开发者欢迎接棒。
与此同时,我注意到Steven Vickers发布了他更新的PHP LTI工具提供者版本,可以作为进一步使用PHP进行LTI开发的起点。
关于
LTI工具提供者类,通过API实现“反射”方式回显Canvas。
这是两个旨在促进和加速PHP中LTI开发的包之一,允许LTI工具提供者从内部直接访问Canvas API。
- 此包
smtech/reflexive-canvas-lti
是“纯朴”版本。也就是说:它纯粹是面向对象的优秀之作,没有GUI来添加任何独特风味。这使得它在某种程度上更加有限,但也希望在这方面更具可重用性。 - 另一个包
smtech/stmarks-reflexive-canvas-lti
提供了一系列方便的GUI附加组件,包括Smarty模板(通过smtech/stmarkssmarty
,这是我的通用battis/bootstrapsmarty
包的St. Mark's风格扩展,它提供了在Smarty模板中访问Bootstrap的便捷方式)。此外,由于该包本身提供GUI,因此还提供了一些实用的交互式控制面板- Toolbox::interactiveGetAccessToken()几乎就是其名字所暗示的:它处理从Canvas交互式地获取API访问令牌(当然,需要提供配置良好的
config.xml
)。 - Toolbox::interactiveConsumersControlPanel()提供了一个用于管理LTI工具消费者密钥和机密的交互式控制面板。
- Toolbox::interactiveGetAccessToken()几乎就是其名字所暗示的:它处理从Canvas交互式地获取API访问令牌(当然,需要提供配置良好的
如何选择?
这取决于你是否喜欢以我的方式构建网页(追求真正的模型-视图-控制器分离,使我的代码更容易阅读/理解),或者你是否更喜欢其他范式。如果你喜欢我的方式,我建议扩展smtech/stmarks-reflexive-canvas-lti
,包括适合你自己的机构的品牌,并使用它。如果不这样做,或者如果你试图避免GUI的纠缠,这个“纯朴”包正合适。
示例代码
在examples
目录中,你可以找到两个示例工具提供者
tool-provider
展示了使用“纯原味”包(这个)构建的 LTI 工具提供者的示例。stmarks-tool-provider
展示了相同的示例,但进行了调整,使用的是smtech/stmarks-reflexive-canvas-lti
-- 我认为这更简洁、更简单。但我是有偏见的。
Composer 的细节
注意:由于 Stephen Vickers 尚未通过 Composer 发布他的 LTI_Tool_Provider
,我认为将他的代码集成到您的 composer.json
文件中的最佳方式是复制以下内容。(这样,当 smtech/reflexive-canvas-lti
依赖于 spvsoftwareproducts/LTI_Tool_Provider
时,Composer 将知道我们在谈论什么。)
另外:要从其中央存储库下载 spvsoftwareproducts/LTI_Tool_Provider
包,您必须允许非 HTTPS 下载,这有点安全漏洞。不是世界末日,但也不是最佳实践。
"config": { "secure-http": false }, "repositories": [ { "type": "package", "package": { "name": "spvsoftwareproducts/LTI_Tool_Provider", "version": "2.5.01", "dist": { "url": "http://projects.oscelot.org/gf/download/frsrelease/956/6025/LTI_Tool_Provider-2.5.01.zip", "type": "zip" }, "license": "LGPL-3.0", "authors": [ { "name": "Stephen Vickers" } ], "homepage": "http://spvsoftwareproducts.com/php/lti_tool_provider/", "autoload": { "classmap": [""] } } } ]
还有其他
"require": { "smtech/reflexive-canvas-lti": "~1.0" }