Erste Schritte¶
Nach dem erfolgreichen Download der Phar Archive
kann das erste kleine Anwendungsscript erstellt werden. Als erstes wird die
Datei myapp.php
angelegt und mit folgendem Code ergänzt. Diese Zeilen sorgen
dafür, dass das Framework und die Komponente eingebunden wird.
<?php
include_once '/phar/alvine.framework-snapshot.phar';
include_once '/phar/alvine.development.upkeep-snapshot.phar';
Über die Sourceklasse lassen sich Quelltexte bearbeiten. Im folgenden soll die Einrückung eines Quelltextes bearbeitet werden.
/** Der Quelltext mit Einrückung (vier Leerzeichen) */
$source = ' $a=4';
/** Einrückung entfernen */
echo (new \Alvine\Development\Upkeep\Source($source))->outdent(0);
// -> $a = 4;
/** Einrückung hinzufügen */
echo (new \Alvine\Development\Upkeep\Source($source))->indent(0);
// -> $a = 4;
Im nächsten Beispiel wird der Quellcode einer komplette Klasse erzeugt.
/** Eigenschaften der Klasse */
$properties = new \Alvine\Types\Collection();
/** Eigenchaft hinzufügen */
$property = new \Alvine\Development\Upkeep\Representation\Part\Property('width');
$property->setType(\Alvine\Types\StringType::class);
$properties->append($property);
/** Klasse erstellen */
$myClass = new Alvine\Development\Upkeep\Producer\DefaultClass('\MyNamespace\MyClass',$properties);
/** Quelltext ausgeben */
echo (string)$myClass;
Das Ergebnis sieht folgendermaßen aus.
/**
* ALVINE
*
* COPYRIGHT: All title and proprietary rights, including trade
* secrets, in the Software and any copies thereof and the
* accompanying written materials, are owned by schukai GmbH
* and are protected by German copyright laws, other applicable
* copyright laws and international treaty provisions.
*
* @category Component
* @package MyNamespace
* @author schukai GmbH <[email protected]>
* @copyright 2000 - 2018 schukai GmbH
* @license http://alvine.io/license/ Licence
* @version $Revision: 156 $
* @link http://alvine.io/ alvine.io
*/
namespace MyNamespace;
/**
*
*
* @category Component
* @package MyNamespace
* @author schukai GmbH <[email protected]>
* @license http://alvine.io/license/ Licence
* @version $Revision: 156 $
* @link http://alvine.io/ alvine.io
* @since 20180403
*/
class MyClass {
// <editor-fold defaultstate="collapsed" desc="properties">
/**
* @var Alvine\Types\StringType
*/
public $width;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="constructor">
/**
*/
public function __construct() {
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="methods">
/**
*
* @return \Alvine\Types\StringType
*/
public function getWidth() {
return $this->width;
}
/**
*
* @param \Alvine\Types\StringType $width
*
* @return \MyNamespace\MyClass
*/
public function setWidth(Alvine\Types\StringType $width) {
$this->width = $width;
return $this;
}
/**
*
* @param \Array $array
*
* @return \MyNamespace\MyClass
*/
static public function getInstanceFromArray(Array $array) {
$arrayHelper = new \Alvine\Types\ArrayHelper($array);
$obj = new static();
$obj->setWidth($arrayHelper->getValue('width'));
return $obj;
}
// </editor-fold>
}