Archive for the ‘PHP’ Category.

Erste Schritte mit cakePHP

Vor ein paar Tagen habe ich mir mal cakePHP angeschaut, ein MVC Framework für PHP. Bei der Entwicklung von Web Anwendungen ist es – so finde ich – echt lästig, jedes bisschen an Code selbst zu schreiben. Um für die eigentliche Anwendung unwichtige Dinge wie User Authentifizierung etc. will ich mich nicht kümmern, ich möchte maximal festlegen, aus welcher Tabelle in der Datenbank die Login/Passwort Kombinationen gelesen werden sollen.

Mit cakePHP kommt man anscheinend recht einfach zu den entsprechenden Resultaten. Auf einem existierenden Xampp aufsetzend hat die Konfiguration von cakePHP knappe fünf Minuten gedauert. Das Abarbeiten der einzelnen Schritte aus dem Tutorial von http://book.cakephp.org/1.3/view/1528/Blog hat dann eine knappe halbe Stunde gedauert.

Interessant war insbesondere die Nutzung von Scaffolding. Basierend auf einem Datenbank-Modell reichen fünf Zeilen aus, um eine komplette Anwendung mit Anlage, Bearbeitung und Löschung von Datensätzen zu erhalten. Muss jetzt mal ein paar Handbücher lesen…

Uwe

Uwe Ziegenhagen has been working with LaTeX for almost two decades. Besides TeX/LaTeX he likes to work with Python, Linux, Rasberry/Arduino and his digital cameras.

More Posts - Website

LaTeX mit PHP und Smarty erzeugen

In einem früheren Artikel habe ich beschrieben, wie man mit Python und der Template-Engine Cheetah LaTeX Dokumente erzeugt. Heute die grundlegenden Schritte, um mit PHP und der Template-Engine Smarty LaTeX Dokumente zu erzeugen. Ich folge dabei mehr oder weniger der Anleitung von http://smarty.incutio.com/?page=SmartyInstallationWindows.

Installation (unter der Windows Installation von Xampp):

  1. Download von http://smarty.php.net
  2. Entpacken des Smarty Ordners nach C:/xampp/libs/
  3. Anlage des Ordners „Smarty“ in htdocs, mit zwei Unterordnern „configs“ und „templates“
  4. Anlage des Ordners „Smarty“ in c:/xampp, mit zwei Unterordnern „cache“ und „templates_c“
  5. Anlage der Datei index.tpl in templates, mit folgendem Inhalt:
    <html>
    <body>
    Hello, {$name}!
    </body>
    </html>
  6. im htdocs Verzeichnis Anlage der Datei index.php, die folgendes enthält:
    <?php
    define('SMARTY_DIR', 'C:/xampp/libs/Smarty-3.1.11/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');
     
    $smarty = new Smarty;
    $smarty->template_dir = 'C:/xampp/htdocs/smarty/templates';
    $smarty->config_dir = ' C:/xampp/htdocs/smarty/config';
    $smarty->cache_dir = 'C:/xampp/smarty/cache';
    $smarty->compile_dir = 'C:/xampp/smarty/templates_c';
     
    $smarty->assign('name','Uwe');
    $smarty->display('index.tpl');
    ?>
  7. jetzt die index.php im Webbrowser aufrufen

Damit ist die initiale Konfiguration von Smarty erledigt, jetzt müssen wir ihm die richtige Behandlung von LaTeX Code beibringen. Da Smarty zum Escapen geschweifte Klammern nutzt, müssen diese umdefiniert werden.

  1. Anlage der Datei tex1.tpl im templates Verzeichnis
    \documentclass[12pt,ngerman]{scrartcl}<br/>
    <br/>
    \author{<@$author@>}<br/>
    \title{<@$title@>}<br/>
    <br/>
    \begin{document}<br/>
    \maketitle<br/>
    <br/>
    \end{document}<br/>
  2. Anlage der tex1.php in htdocs:
    <?php
    define('SMARTY_DIR', 'C:/xampp/libs/Smarty-3.1.11/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');
     
    $smarty = new Smarty;
    $smarty->template_dir = 'C:/xampp/htdocs/smarty/templates';
    $smarty->config_dir = ' C:/xampp/htdocs/smarty/config';
    $smarty->cache_dir = 'C:/xampp/smarty/cache';
    $smarty->compile_dir = 'C:/xampp/smarty/templates_c';
     
    $smarty->caching =false; //disable caching  
     
    $smarty->left_delimiter = '<@';
    $smarty->right_delimiter = '@>';
     
    $smarty->assign ('author', 'Uwe Ziegenhagen');
    $smarty->assign ('title', 'Hello Smarty!');
     
    $smarty->display ('tex1.tpl');
    ?>

Uwe

Uwe Ziegenhagen has been working with LaTeX for almost two decades. Besides TeX/LaTeX he likes to work with Python, Linux, Rasberry/Arduino and his digital cameras.

More Posts - Website

Google Chart API

Google hat vor einiger Zeit eine API herausgebracht, die die Erstellung von schicken Grafiken im Netz ermöglicht. Notiz an mich: Mal ausprobieren!

Hier der Link: http://code.google.com/intl/de-DE/apis/chart/ .

Uwe

Uwe Ziegenhagen has been working with LaTeX for almost two decades. Besides TeX/LaTeX he likes to work with Python, Linux, Rasberry/Arduino and his digital cameras.

More Posts - Website

PHPExcel

Habe in einer alten c’t einen Hinweis auf PHPExcel gefunden, eine Bibliothek, die dynamisch Excel Dokumente erzeugen kann.

Hier mal ein „Hello World!“ Beispiel von der Webseite http://phpexcel.codeplex.com:

<?php
/** Error reporting */
error_reporting(E_ALL);
 
/** Include path **/
ini_set('include_path', ini_get('include_path').';../Classes/');
 
/** PHPExcel */
include 'PHPExcel.php';
 
/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';
 
// Create new PHPExcel object
echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();
 
// Set properties
echo date('H:i:s') . " Set properties\n";
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
 
 
// Add some data
echo date('H:i:s') . " Add some data\n";
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');
 
// Rename sheet
echo date('H:i:s') . " Rename sheet\n";
$objPHPExcel->getActiveSheet()->setTitle('Simple');
 
 
// Save Excel 2007 file
echo date('H:i:s') . " Write to Excel2007 format\n";
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
 
// Echo done
echo date('H:i:s') . " Done writing file.\r\n";

Uwe

Uwe Ziegenhagen has been working with LaTeX for almost two decades. Besides TeX/LaTeX he likes to work with Python, Linux, Rasberry/Arduino and his digital cameras.

More Posts - Website