1. Go to this page and download the library: Download schenke-io/packaging-tools library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
schenke-io / packaging-tools example snippets
use SchenkeIo\PackagingTools\Badges\MakeBadge;
// auto-generate all detected badges
MakeBadge::auto();
// generate specific badges (path optional, auto-detected when omitted)
MakeBadge::makeCoverageBadge(); // from clover.xml
MakeBadge::makePhpStanBadge(color: '2563eb'); // blue by default
MakeBadge::makeInfectionBadge();
MakeBadge::makePhpVersionBadge();
// with explicit paths
MakeBadge::makeCoverageBadge('build/logs/clover.xml');
MakeBadge::makePhpStanBadge('phpstan.neon', '16a34a');
// custom badge
MakeBadge::define('My Label', 'passing', '27AE60')
->store('resources/md/svg/my-badge.svg');
use SchenkeIo\PackagingTools\Markdown\MarkdownAssembler;
$assembler = new MarkdownAssembler('resources/md');
// embed full content of all skills
$assembler->skills()->all();
// embed a specific skill
$assembler->skills()->add('my-skill-name');
// render a summary table (name + description) for all skills
$assembler->skillOverview();
use SchenkeIo\PackagingTools\Traits\GeneratesPackageMigrations;
use Illuminate\Console\Command;
class MyMigrationCommand extends Command
{
use GeneratesPackageMigrations;
public function handle(): void
{
$this->generatePackageMigrations();
}
}
MarkdownAssembler::init('resources/md');
use SchenkeIo\PackagingTools\Markdown\MarkdownAssembler;
$assembler = new MarkdownAssembler('resources/md');
$assembler
->addTableOfContents()
->addMarkdown('header.md')
->badges()->all()
->addMarkdown('installation.md')
->addMarkdown('usage.md')
->classes()->all()
->writeMarkdown('README.md');
$assembler->classes()->all(); // all classes in src/
$assembler->classes()->add(MyClass::class); // single class
$assembler->classes()->glob('src/Models/*.php'); // glob pattern
$assembler->classes()->custom(MyClass::class, fn($data) => "## {$data->name}");
$assembler->skills()->all(); // all skills in resources/boost/skills/
$assembler->skills()->add('my-skill-name'); // specific skill
$assembler->skillOverview(); // summary table (name + description)
use SchenkeIo\PackagingTools\Traits\LoadsSeededSql;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\TestCase;
class MyFeatureTest extends TestCase
{
use DatabaseTransactions; // wrap each test in a transaction — do NOT use RefreshDatabase
use LoadsSeededSql;
public function setUp(): void
{
parent::setUp();
$this->loadSeededSql(); // default: tests/Data/seeded.sql
// $this->loadSeededSql('tests/Data/custom.sql'); // custom path
}
}
use SchenkeIo\PackagingTools\Markdown\MarkdownAssembler;
MarkdownAssembler::init('workbench/resources/md');
chenkeIo\PackagingTools\Markdown\MarkdownAssembler;
try {
$mda = new MarkdownAssembler('workbench/resources/md');
// add a header with project name, description and badges
$mda->autoHeader('My Awesome Package');
// kills from resources/boost/skills/
$mda->skills()->all();
// add a table from a CSV file
$mda->tables()->fromFile('data.csv');
// add documentation for all classes in src/
$mda->classes()->all();
// or from a single class
$mda->classes()->add(MarkdownAssembler::class);
// write the result to a file (relative to root directory)
$mda->writeMarkdown("README.md");
} catch (Exception $e) {
echo "ERROR: " . $e->getMessage() . PHP_EOL;
}