gammamatrix/site-playground

Playground: This package provides a Laravel site using Sanctum for authentication and authorization and utilizes Blade for the UI. A Content Management System is also provided, along with user and settings management.

dev-develop / 73.x-dev 2024-03-25 05:55 UTC

This package is auto-updated.

Last update: 2024-05-25 06:26:26 UTC


README

Playground CI Workflow Test Coverage PHPStan Level 9 src and tests

Site: Playground Package for Laravel v11 applications.

Read more on using Site: Playground, at the Read the Docs: Playground Documentation.

NOTE: Playground uses declare(strict_types=1);

NOTE: This package is meant to be forked, cloned or used composer create-project

Install the package with composer create-project

composer create-project gammamatrix/site-playground site-example --stability dev
  • NOTE: A stable release has not been deployed yet.

Installed Playground Packages

Package Description
playground-admin-resource Provide the Admin UI to manage users and settings.
playground-cms-resource Provide the CMS UI for the Playground Content Management System.
playground-login-blade Provides endpoints a Blade UI for authentication, authorization, verification and credential management.
playground-site-blade Provides a standard website with an index, dashboard, sitemap, theme handling and CMS integration.

Installed Support Playground Packages

Package Description
playground A base package for Laravel integration.
playground-admin Provide the Settings models for playground-admin-resource.
playground-auth Provide authentication and authorization handling for Laravel applications. Allows using Sanctum.
playground-blade Provides Blade UI handling for login, resource and site packages.
playground-cms Provide the CMS models for playground-cms-resource.
playground-http Provide HTTP content and filter handling for controllers and requests.
playground-test A test helper for Playground packages.

Testing

This application supports running integration tests with the installed Playground packages.

<testsuites>
  <testsuite name="Unit">
    <directory>tests/Unit</directory>
    <directory>vendor/gammamatrix/playground/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-auth/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-blade/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-admin/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-admin-resource/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-cms/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-cms-resource/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-http/tests/Unit</directory>
    <directory>vendor/gammamatrix/playground-test/tests/Unit</directory>
  </testsuite>
  <testsuite name="Feature">
    <directory>tests/Feature</directory>
    <directory>vendor/gammamatrix/playground/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-auth/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-blade/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-admin/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-admin-resource/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-cms/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-cms-resource/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-login-blade/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-http/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-site-blade/tests/Feature</directory>
    <directory>vendor/gammamatrix/playground-test/tests/Feature</directory>
  </testsuite>
</testsuites>

<source>
  <include>
    <directory>app</directory>
    <directory suffix=".php">vendor/gammamatrix/playground/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-auth/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-blade/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-admin/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-admin-resource/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-cms/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-cms-resource/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-login-blade/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-site-blade/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-http/src</directory>
    <directory suffix=".php">vendor/gammamatrix/playground-test/src</directory>
  </include>
</source>
composer test

Test examples:

phpunit --coverage-text --teamcity --filter 'PageRevision\\ModelTest::test_verify_model_relationships'
--testsuite Feature

phpunit --coverage-text --teamcity --filter 'Backlog\\ModelTest::test_verify_model_relationships' --testsuite Feature
phpunit --coverage-text --filter ModelTest
phpunit --coverage-text --filter RouteTest
phpunit --coverage-text --filter InstanceTest
phpunit --coverage-text --filter Policy
phpunit --coverage-text --filter Resource
phpunit --coverage-text  --filter Login
phpunit --coverage-text  --filter Cms
phpunit --coverage-text --filter Matrix

Code coverage

NOTE: If you use this repository for a production site, make sure to hide the code coverage linked in public/tests.

The phpunit files for Playground support integration and package testing.

screenshot of Test reports for Site Playground.

Code Coverage for Site Playground

screenshot of Code Coverage for Site Playground.

Code Coverage for Site Playground: GammaMatrix Packages:

screenshot of Code Coverage for Site Playground: GammaMatrix Packages.

PHPStan

Tests at level 9 on:

  • app/
  • config/
  • database/
  • resources/views/
  • tests/Feature/
  • tests/Unit/
  • and on Playground packages.
composer analyse

Coding Standards

composer format

Themes

playground-blade provides Bootstrap 5 themes, using CSS Variables.

screenshot of Editing a Page with the dark theme. screenshot of Editing a Page with the wheat theme.

screenshot of the sitemap with the wheat theme.

artisan about

Playground provides information in the artisan about command.

screenshot of artisan about command with Site Playground.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

The MIT License (MIT). Please see License File for more information.