Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |
programmiersprachen:entwickeln-mit-php [2013/04/04 11:31] – [Code-Beispiele] st | programmiersprachen:entwickeln-mit-php [2013/04/04 11:32] (aktuell) – [Code-Beispiele] st |
---|
| ====== 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: <code php> <?PHP phpinfo();?> </code> |
| * Servervariablen ausgeben: <code php> <?php |
| foreach($_SERVER as $_Name=>$_Wert) |
| echo '<br>'.$_Name.": ".$_Wert; |
| ?> </code> |
| * Einzelne IP (hier: 22.23.24.25) an andere Adresse weiterleiten: <code php>$ipadresse = $_SERVER['REMOTE_ADDR']; |
| if($ipadresse == "22.23.24.25") |
| { |
| header("Location: http://www.zieldomain.com/"); |
| // oder: header("Location: ./BACKUP/"); |
| exit; |
| }</code> |
| |
| ==== 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 ==== |
| <code php> |
| $connID = mysql_connect ("localhost", "dbuser". "passwort"); |
| if ($connID){ |
| // Datenbankverarbeitung |
| } else { |
| echo ("Fehler: Kein Datenbankzugriff möglich!<br />"); |
| } |
| 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 |
| </code> |