====== Entwickeln mit PHP ======
===== Links =====
* [[http://www-128.ibm.com/developerworks/edu/os-dw-os-phptut1-i.html|Learning PHP, Part 1: Register for an account, upload files for approval, and view and download approved files]]
* [[http://www-128.ibm.com/developerworks/edu/os-dw-os-phptut2-i.html|Learning PHP, Part 2: Upload files and use XML to store and display file]]
* [[http://www-128.ibm.com/developerworks/edu/os-dw-os-phptut3-i.html|Learning PHP, Part 3: Authentication, objects, exceptions, and streaming]]
* [[http://www.developer.com/open/article.php/3656001|Developing a Ajax-driven Shopping Cart with PHP and Prototype]]
===== Entwicklungsumgebungen =====
[[http://www.php-editors.com/review/|PHP-Editor Review]]
==== Eclipse ====
* [[software:Eclipse]] + plugin [[http://www.phpeclipse.de|phpeclipse]] ([[http://docs.schuetzengau-freising.de/modules/xdocman/index.php?doc=xo-002&lang=en|PHPeclipse User Manual]])
* [[http://www.heise.de/newsticker/meldung/74706|Callisto: zusammengefasste Eclipse-Projekte]]
* ... andere plugins, dann kann man sich phpmyadmin sparen FIXME
===== Debugging (mit Eclipse-Addons) =====
in der php.ini sollte zuerst einmal das Anzeigen von Fehlern aktiviert werden:
display_errors = On
dann sollte man die Anzeige möglichst vieler Informationen einstellen, dazu lassen wir mit der Zeile
error_reporting = E_ALL & ~E_NOTICE
alle Fehler und zusätzliche Informationen anzeigen.
* **[[http://www-128.ibm.com/developerworks/opensource/library/os-debug/?ca=dgr-lnxw06PHPEclipse|Debugging techniques for PHP programmers]]**
* [[http://www.plog4u.org/index.php/PHPEclipse_verwenden_:_Installation_:_Installation_des_DBG-Debuggers|Installation des DBG-Debuggers]]
* **debugging** gibts bei [[http://pecl.php.net]] (auch sowas wie [[http://pear.php.net|pear]]) das **[[http://xdebug.org|Xdebug]]** (PHP-Modul für eine bessere Fehlerausgabe).
* [[http://xdebug.org/install.php|Xdebug Installationsanleitung]]
===== Frameworks =====
* [[http://cakefoundation.org/|CakePHP]]
* [[http://www.h3rald.com/articles/view/rails-inspired-php-frameworks|Articles :: Rails-inspired PHP frameworks (Vergleich von mehreren PHP-Frameworks)]]:
* [[http://hades.phparch.com/ceres/public/article/index.php/art::zend_framework::tutorial?p=0|Zend]]
===== Modultests oder Unit-tests =====
**[[wpde>Modultest|Modultests oder Unit-tests]]** helfen bei der Entwicklung von Software indem sie die Verifikation der Korrektheit von Modulen einer Software ermöglichen.
==== phpunit (Pear-package) ====
[[http://www.phpunit.de/wiki/Main_Page|Homepage]]
[[http://www.phpunit.de/pocket_guide/2.3/de/index.html|PHPUnit - kurz & gut]]
===== PHP Klassen und Addons =====
* [[http://pear.php.net|Pear]]: per kommandozeilen client ("pear install {paketname}") klassen runterladen und php erweitern da gibts auch eine sehr schöne Datenbankabstraktionsklasse DB und DB_DataObject.
* [[http://freshmeat.net/projects/httpclass/|HTTP client request class]] - HTTP requests, proxy server, HTTPS, HTTP Basic, HTTP Digest, and NTLM (Windows or Samba), submits POST requests, ...
* [[http://www.php.net/manual/en/ref.ftp.php|Php ftp-Funktionen]]
===== Code-Beispiele =====
* Informationen über Server und PHP ausgeben:
* Servervariablen ausgeben: $_Wert)
echo '
'.$_Name.": ".$_Wert;
?>
* Einzelne IP (hier: 22.23.24.25) an andere Adresse weiterleiten: $ipadresse = $_SERVER['REMOTE_ADDR'];
if($ipadresse == "22.23.24.25")
{
header("Location: http://www.zieldomain.com/");
// oder: header("Location: ./BACKUP/");
exit;
}
==== typische Aufgaben ====
* [[http://sourceforge.net/projects/phputf8|phputf-8]]
* [[http://kalender-365.de/|Ewiger Kalender für die Jahre zwischen 1800 und 2400 (incl. PHP-Code)]]
* [[http://de.php.net/explode|string zu array (z.B. CSV-Liste) mit explode]]
==== Mails versenden ====
[[http://www.php4-forum.de/mime_mail.htm|MIME-Mail]]
[[http://phpmailer.sourceforge.net/|Mailer-Klasse]]
[[http://www.zend.com/zend/spotlight/sendmimeemailpart1.php|Sending MIME e-mail from PHP - Part 1]]
==== Formulare ====
[[http://www.akademie.de/programmierung-administration/php/kurse/php-einfuehrung/formulare/auswerten.html|1a Übersicht zu php-Formularen]]
[[http://tut.php-q.net/formulare.html|Formulare verarbeiten]]
[[http://de.selfhtml.org/html/formulare/index.htm|Selfhtml zum Thema Formulare]]
[[http://www.webmaster-resource.de/tricks/php/login-formular-mit-php-und-mysql.php|Login-Formular]]
==== PDF ====
[[http://www.zend.com/zend/tut/tutorial-PDFgen1.php?article=tutorial-PDFgen1&kind=t&id=4793&open=1&anc=0&view=1#notes|PDF Generation Using Only PHP - Part 1]]
[[http://sourceforge.net/projects/tcpdf/|TCPDF - PDF class for PHP]]
==== MySQL Connect ====
$connID = mysql_connect ("localhost", "dbuser". "passwort");
if ($connID){
// Datenbankverarbeitung
} else {
echo ("Fehler: Kein Datenbankzugriff möglich!
");
}
mysql_select_db("Datenbankname");
// oder falls mehrere Datenbakverbindungen geöffnet sind:
mysql_select_db("Datenbankname", $connID);
// (Auswahl-)Abfrage
$result = mysql_query ("SELECT * FROM DatenbankName WHERE Feld1 LIKE "Zeichenkette");
// Zeilen davon auslesen, beide liefern ein Array
mysql_fetch_row ($result) // Indices nummerisch
mysql_fetch_arry ($result) // Die Feldnamen