PHP Classes

File: src/add_usage_examples.php

Recommend this page to a friend!
  Classes of Juan Camacho   Hypertool   src/add_usage_examples.php   Download  
File: src/add_usage_examples.php
Role: Auxiliary script
Content type: text/plain
Description: Configuration script
Class: Hypertool
Compose and generate HTML pages from objects
Author: By
Last change:
Date: 18 days ago
Size: 1,078 bytes
 

Contents

Class file image Download
<?php
// Script to append a usage example to each element class file in src/

$dir = __DIR__;
$files = glob("$dir/*.php");

foreach (
$files as $file) {
   
$basename = basename($file, '.php');
    if (
in_array($basename, [
       
'Html', 'html_elements_master_list', 'check_missing_elements', 'generate_missing_elements', 'add_usage_examples'
   
])) continue;

   
$content = file_get_contents($file);
   
// Skip if usage example already present
   
if (strpos($content, 'Usage example:') !== false) continue;

   
// Try to detect class name (first class in file)
   
if (preg_match('/class\s+([A-Za-z0-9_]+)/', $content, $m)) {
       
$className = $m[1];
    } else {
        continue;
    }

   
$usage = <<<EOT

/*
Usage example:

// Using the class directly
\$
{$basename} = new $className('Sample content');
echo \$
{$basename}->output();

// Using the static factory method
\$
{$basename}2 = HtmlElement::{$basename}('Sample content');
echo \$
{$basename}2->output();
*/
EOT;

   
file_put_contents($file, $content . $usage);
    echo
"Updated $file\n";
}
echo
"Done.\n";