Source
class Source extends Alvine implements Countable
Verarbeiten von Quelltexten
Diese Klasse stellt grundlegende Funktionen für die Arbeit mit Quelltexten zur Verfügung. Die einzelnen Funktionen bieten die Möglichkeit Zeilen einzurücken (indent) oder auszurücken (outdent).
// Der Quelltext mit Einrückung (vier Leerzeichen)
$source = ' $a=4';
// Einrückung entfernen
(new Source($source))->outdent(0);
// Ergebnis
$a=4
Die Klasse besitzt auch eine statische Methode um aus einem ReflectionClass-Objekt einen Quelltext zu erstellen. Dazu werden die Bestandteile an die zuständigen Renderklassen weitergegeben.
$reflection = new \ReflectionClass('\Alvine\Core\Alvine');
echo (string) \Alvine\Development\Upkeep\Source::getInstanceFromReflection($reflection);
Die Klassenstruktur sieht folgendermassen aus
Constants
INDENT |
Einrücken 4 Leerzeichen |
LINEFEED |
Zeilenumbruch im Code |
Properties
protected string | $reference | Bezeichnung für die Referenz, die den Quelltext bearbeitet hat. | |
protected StringList | $lines |
Methods
Neues Objekt
Gibt den Inhalt der angegebenen Zeile der Quelldatei als String zurück.
Gibt den Inhalt der angegebenen Zeilen der Quelldatei als String zurück.
Zeilen
Quelltext
Codeabschnitt zerlegen
Ausgabe des Quelltextes
No description
Formatieren eines Wertes
Anzahl der Zeilen
Details
at line 95
__construct(string $source)
Neues Objekt
Neues Objekt mit dem übergebenen Quelltext
at line 110
string|null
getLine(integer $line)
Gibt den Inhalt der angegebenen Zeile der Quelldatei als String zurück.
at line 124
string|null
getLines(integer $from, integer $to)
Gibt den Inhalt der angegebenen Zeilen der Quelldatei als String zurück.
at line 142
setLine(integer $line, string $source)
Zeilen
Setzt den Inhalt der angegebenen Zeile der Quelldatei als String.
at line 155
string
getSource()
Quelltext
Gibt den Inhalt der Quelldatei als String zurück.
at line 168
Source
setSource(string $source)
Quelle
Setzt die übergeben Zeichenkette als neuen Quelltext
at line 193
Source
indent(integer $line, integer $count = 1)
Einrücken
Rückt eine Zeile weiter ein. Die Nummerierung der Zeilen beginnt bei 0.
at line 211
Source
outdent(integer $line, integer $count = 1)
Ausrücken
Rückt eine Zeile nach links. Die Nummerierung der Zeilen beginnt bei 0.
at line 235
static protected array
getCodeSegements(string $source)
Codeabschnitt zerlegen
Diese Methode zerlegt eine Codeabschnitt, der durch eine XML-Marker <alvine-generated /> eingefasst ist.
<alvine-generated name="" ref="" created=""></alvine-generated>
// name: eindeutiger Name der Eingrenzung innerhalb der Datei
// ref: Referenzierung auf das Erstellscript
// created: Erstelldatum in der Form YYYY-mm-dd
at line 280
Source
replace(string $name, string $snippet)
Codeabschnitt austauschen
Diese Methode schneidet aus einer Quelldatei einen Codebereich aus und ersetzt diesen durch einen neue Zeichenkette. Dabei muss der Codebereich der ausgetauscht werden soll mit den Tags umgeben sein.
// <alvine-generated name="segName" ref="this" created=""> // <\alvine-generated>
Der Bereich zwischen den Tags wird ausgetauscht. Die Identifizierung des Code-Segments erfolgt über den Namen der im Tag angegebn wurde. In dem Beispiel segName
// Beispiel
$obj->replace($name, $snippet, $reference);
at line 312
string
__toString()
Ausgabe des Quelltextes
Die Methode ruft die Methode getSource auf und erzeugt somit den Quelltext und gibt diesen als Zeichenkette zurück.
echo (stirng) new Source($source);
at line 331
static Source
getInstanceFromReflection(ReflectionClass>|ReflectionClass $reflection)
Objekt erstellen
Objekt aus einem \Reflection-Objekt erstellen.
$reflection = new \ReflectionClass('\Alvine\Development\Upkeep\TestClassForReflectionA')
echo Source::getInstanceFromReflection($reflection);
// ... class TestClassForReflectionA { ...
at line 359
static protected
getTypedArrayValue(array $value)
at line 402
static string
getTypedValue(mixed $value)
Formatieren eines Wertes
Diese Methode formatiert einen Wert in der Form, das die Zeichenkette in einer Zuweisung oder einem Vergleich stehen kann. Das bedeutet, das z.B. eine Zeichenkette in Anführungszeichen gesetzt wird.
echo Source::getTypedValue(true);
// 'true'
at line 434
integer
count()
Anzahl der Zeilen