项目作者: atymic

项目描述 :
Test, Run & Share Laravel Collection Examples!
高级语言: Vue
项目地址: git://github.com/atymic/laravel-collection-playground.git
创建时间: 2019-08-15T07:40:57Z
项目社区:https://github.com/atymic/laravel-collection-playground

开源协议:MIT License

下载


Laravel Collection Playground

Laravel’s collections are awesome!
This project provides a “jsfiddle” style environment to test, run & share collection code.

It runs in the browser? :astonished:

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.

It works without internet? :mobile_phone_off:

The playground is built as a PWA, which provides several advantages.

  • Caching of downloaded PHP binary (no need to re-download the binary on each page load)
  • Support for using offline (since the code is eval’d locally, it will work without any internet)

Project Details

Folder Structure

  • 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 results

Building

PHP

  1. php php-app/create-phar.php php-src/app.phar # create the phar containing the PHP code
  2. cd php-src # Swtich to the pib dir
  3. docker run --rm -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash build.sh # Build PHP
  4. 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

Playground

  1. cd playground
  2. yarn # Install deps
  3. yarn serve # Development
  4. yarn build # Production build to `dist` folder

Contributing

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.

Further Reading

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.

Credits

The in-browser PHP evaluation uses PHP in Browser by oraoto