- Make sure that gRPC is installed so that the current version of Firestore can be used (on macOS, it's worth checking to see if the
pecl
symlink in the active PHP installation is valid, per this note). - Make sure that Node is installed, as the deploy script runs on node.
composer run-script deploy
On the first deploy, you will be walked through an interactive Google Cloud project creation wizard (or can select an existing Google Cloud project) to which the app will be deployed.
Below are a number of resources that I found useful in implementing this:
- 1EdTech's unmaintained lti-1-3-php library gave some helpful information about endpoints.
- 1EdTech;s unmaintined lti-1-3-php-example-tool gave some insight into the intended use of their library and further insights into the behavior of endpoints.
- Packback's lti-1-3-php-library is actual useful, maintained code on which this depends!
- Packback's wiki for that library was helpful in thinking through their implementation but is (as of this writing) lagging behind their actual implementation by a bit, I think.
- My own notes in this Packback issue regarding making a full implementation.
- Obviously the Slim Framework and their Slim-Skeleton were helpful starting points for the structure of the Slim app! I find it more useful to bring in the pieces of the skeleton as-needed, rather than starting with the app template.
- The LTI Debugger Chrome Extension which adds another tab to the Developer Console, which was about the only thing of value that I was able to pull from 1EdTech's LTI Bootcamp, which everyone else links to as a great resource. It may prove useful as I get more into the specifics of deep linking?
Looking ahead, I intend to implement dynamic registration. I am finding the following helpful in this (although the choice between LTI 1.3 Dynamic Registration and LTI 2.0 Dynamic Registration is unclear to me -- the former seems like the path forward, while the latter seems to exist in the wild.)