Test, Run & Share Laravel Collection Examples!
Laravel's collections are awesome!
This project provides a "jsfiddle" style environment to test, run & share collection code.
The playground uses pib to evaluate PHP code directly inside the browser.
When you load the playground, Vue downloads a compiled web assembly build of PHP. This is used by they playground to
locally eval your code as you type.
The disadvantages of this approach are the limited browser support - for it to work you need to be running a desktop version of Chrome or Firefox that is recent. Safari & Edge aren't support at the moment. See this issue for more information.
The playground is built as a PWA, which provides several advantages.
api
contains the lambda function that is used to save playground as github gists, so they can be saved & shared.php-app
contain a small PHP application that is used to evaluate the collection code, catch errors and return it
back to the client as json.php-src
contains the scripts to build the in web assembly build, containing PHP + the php-app
code.playground
contains the Vue application which communicates with PHP to run your code, and display the resultsphp php-app/create-phar.php php-src/app.phar # create the phar containing the PHP code
cd php-src # Swtich to the pib dir
docker run --rm -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash build.sh # Build PHP
cp php-7.3.6/php.wasm php-7.3.6/php.js php-7.3.6/php.data ../playground/public # Copy the compiled files into the playground
cd playground
yarn # Install deps
yarn serve # Development
yarn build # Production build to `dist` folder
PRs are welcome! Feel free to improve the documentation, fix bugs and help make the playground better! Issues are welcome as well if you find a bug or improvement.
The Laravel Collections documentation.
Adam Wathan has a great course, Refactoring to Collections which provides tons of content on refactoring your Laravel to take advantage of collections.
The in-browser PHP evaluation uses PHP in Browser by oraoto