Changeset 4616


Ignore:
Timestamp:
09/07/10 21:10:11 (17 months ago)
Author:
vain
Message:
  • added some lines to the dev manual
Location:
trunk/doc/manuals/developer/manual/de
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manuals/developer/manual/de/kapitel03-entwicklungseinstieg.asc

    r4577 r4616  
    283283In dieser Datei kann manuell der Vhost "ServerName clansuite-dev.com", 
    284284sowie "ServerAlias www.clansuite-dev.com" hinzugefügt werden. 
    285 Alternativ kann die Datei einfach mit der Version aus dem Clansuite SVN ersetzen. 
     285Alternativ kann man die Datei einfach mit der Version aus dem Clansuite SVN ersetzen. 
    286286Die entsprechende Datei gibts hier: http://svn.gna.org/svn/clansuite/trunk/build-tools/xampp/httpd-vhosts.conf 
     287 
     288.Beispielinhalt für "httpd-vhosts.conf" 
     289[source, txt] 
     290--------------------------------------------------------------------- 
     291NameVirtualHost *:80 
     292 
     293<VirtualHost *:80> 
     294     ServerName localhost 
     295     ServerAlias localhost 
     296     DocumentRoot "D:/xampplite/htdocs" 
     297     ErrorLog "D:/xampplite/apache/logs/localhost-error.log" 
     298     CustomLog "D:/xampplite/apache/logs/localhost-access.log" common 
     299 
     300     <Directory "D:/xampplite/htdocs"> 
     301        Options Indexes FollowSymLinks 
     302        AllowOverride All 
     303        Order allow,deny 
     304        Allow from all 
     305    </Directory> 
     306</VirtualHost> 
     307 
     308<VirtualHost *:80> 
     309     ServerName clansuite-dev.com 
     310     ServerAlias www.clansuite-dev.com 
     311     DocumentRoot "D:/xampplite/htdocs/work/clansuite/trunk" 
     312     ErrorLog "D:/xampplite/apache/logs/www.clansuite-dev.com-error.log" 
     313     CustomLog "D:/xampplite/apache/logs/www.clansuite-dev.com-access.log" common 
     314 
     315     <Directory "D:/xampplite/htdocs/work/clansuite/trunk"> 
     316        Options Indexes FollowSymLinks 
     317        AllowOverride All 
     318        Order allow,deny 
     319        Allow from all 
     320    </Directory> 
     321</VirtualHost> 
     322--------------------------------------------------------------------- 
    287323 
    288324Damit das System diese URL auf den lokalen Server umleitet, muss noch die "hosts"-Datei 
     
    301337 
    302338Download 
    303 Falls "php_xdebug.dll" nicht vorhanden ist, dann von http://xdebug.org/ downloaden. 
     339Falls "php_xdebug.dll" nicht vorhanden ist, dann kann man sie von http://xdebug.org/ downloaden. 
    304340Entsprechend umbenennen und ins Verzeichnis "C:\xampplite\php\ext" ablegen. 
     341 
     342Um die richtige Binary für Xdebug zu finden kann auf die Projektwebseite zurückgegriffen werden. 
     343Unter http://www.xdebug.org/find-binary.php findet man ein Formular um den Inhalt der eigenen phpinfo()  
     344Ausgabe zu posten. Nach der Auswertung der Versionsangaben der Serversoftware, wird die entsprechende  
     345Xdebug-Binary und eine Installationsanleitung dafür angezeigt. 
     346 
     347.Tailored Installation Instructions for Xdebug 
     348[source, txt] 
     349--------------------------------------------------------------------- 
     350Summary 
     351 
     352    * Xdebug installed: no 
     353    * Server API: Apache 2.0 Handler 
     354    * Windows: yes - Compiler: MS VC6 - Architecture: x86 
     355    * Zend Server: no 
     356    * PHP Version: 5.3.1 
     357    * Zend API nr: 220090626 
     358    * PHP API nr: 20090626 
     359    * Debug Build: no 
     360    * Thread Safe Build: yes 
     361    * Configuration File Path: no value 
     362    * Configuration File: D:\xampplite\php\php.ini 
     363    * Extensions directory: D:\xampplite\php\ext 
     364 
     365Instructions 
     366 
     367   1. Download php_xdebug-2.1.0-5.3-vc6.dll 
     368   2. Move the downloaded file to D:\xampplite\php\ext 
     369   3. Edit D:\xampplite\php\php.ini and add the line 
     370      zend_extension = D:\xampplite\php\ext\php_xdebug-2.1.0-5.3-vc6.dll 
     371   4. Restart the webserver 
     372--------------------------------------------------------------------- 
    305373 
    306374XDebug in der php.ini einschalten 
     
    326394Eine ausführliche Anleitung zum Thema "Wie installiere ich XDebug?" findet sich in Kapitel 16 (Der Webserver). 
    327395 
     396.Xdebug-Einstellungen für Debugging mit Netbeans IDE 
     397[source, txt] 
     398--------------------------------------------------------------------- 
     399# In der php.ini folgende Werte setzen: 
     400xdebug.idekey         = netbeans-xdebug 
     401xdebug.remote_enable  = on 
     402xdebug.remote_handler = dbgp 
     403xdebug.remote_host    = localhost 
     404xdebug.remote_port    = 9001 
     405--------------------------------------------------------------------- 
     406 
    328407==== Einfache Texteditoren 
    329408 
  • trunk/doc/manuals/developer/manual/de/kapitel05-framework.asc

    r4577 r4616  
    11471147==== Clansuite_Cache 
    11481148 
    1149 Die Klasse Clansuite_Cache ermöglicht den Zugriff auf die verschiedenen Cache-Adapter. 
     1149Die Klasse Clansuite_Cache ermöglicht die Zwischenspeicherung von Daten im Rahmen eines Applikations-Caches. 
     1150Eine Zwischenspeicherung bietet sich bei Daten an, die in ihrer Herstellung rechenintensiv sind oder sehr 
     1151häufig verwendet werden. Durch das Vorhalten im System sind sie bei Bedarf schnell erneut abrufbar. Dazu kann 
     1152auf verschiedene Cache-Adapter zurückgegriffen werden. Die unterschiedlichen Cache-Adapter dienen einerseits 
     1153dazu unterschiedliche PHP-Extensions zu unterstützen, andererseits aber auch dazu die Art und den Ort des 
     1154Zwischenspeichers genauer zu bestimmem. Als Ablageorte kommen der Hautpspeicher und Festplatte in Betracht. 
     1155 
     1156.Überblick PHP Caching-Extensions 
     1157Für PHP lassen sich inzwischen verschiedene Caching-Extensions finden. 
     1158Anzuführend sind beispielsweise die Standardbibliotheken Alternative PHP Cache (APC) und WinCache, 
     1159sowie eAccelerator, XCache, ionCube Loader (früher PHP Accelerator) und Zend Optimizer. 
     1160Gemeinsam ist diesen Erweiterungen, dass sie in C implementiert sind und direkt an der ZendEngine ansetzen, 
     1161um eine Leistungssteigerung zu bewirken. Die Leistungssteigerung bewirkt regelrechte Performcesprünge. 
     1162Dabei sind Performcesprünge von 200% bis 500% durchaus mess- und beobachtbar. 
     1163 
     1164Zudem bewirkt der Einsatz dieser Caches, dass sich die Load des Webservers deutlich spürbar mindert. 
     1165Der leistungssteigernde Caching-Effekt lässt sich durch einfaches Aktivieren der Erweiterung herbeiführen. 
     1166In wenigen Fällen sind umfangreiche Konfigurationsmaßnahmen nötig, zumeist bewirkt schon der Betrieb mit 
     1167Standardeinstellungen einen deutlichen Performaceboost. 
     1168In der Regel ergibt sich kein Grund dafür, auf eine solche Erweiterung zu verzichten. 
     1169Dennoch ist bei vielen Webhoster dieses Feature deaktivert und erst auf Nachfrage verfügbar. 
     1170 
     1171Das Gegenteil zu Caches, die als PHP-Extension eingebunden werden, sind die sogenannten Userland-Caches. 
     1172Dabei handelt es sich um Caching-Verfahren die vom Nutzer selbst erstellt wurden und daher in PHP implementiert sind. 
     1173Es lassen sich beispielsweise generierte Grafiken oder Rückgabewerte von Funktionsaufrufen zwischenspeichern. 
     1174 
     1175Sowohl ZendGuard, als auch ionCube Loader bieten neben der Caching-Funktionalität auch die Möglichkeit, den 
     1176Sourcecode in einer geschützen, verschlüsselten Form abzulegen. 
     1177Bei einem quellcode-offenen Produkt wie Clansuite, steht der Einsatz dieser Techniken aber außer Frage. 
     1178 
     1179.Überblick Caching-Mechanismen 
     1180Grundsätzlich lassen sich mehrere Anknüpfungspunkte für Caching-Systeme in PHP finden. 
     1181Zu den bekannteren Verfahren gehört das Opcode Caching. 
    11501182 
    11511183.Was macht ein OpCode-Cache? 
    1152 Normalerweise wird bei jedem Aufruf eines Skriptes zuerst das Skript kompiliert (es wird aus der Skriptsprache 
    1153 in Maschinencode überführt) und dann ausgeführt. Das kostet Zeit und verbraucht wertvolle Rechenleistung. 
     1184Normalerweise wird bei jedem Aufruf eines PHP-Skriptes zuerst das Skript kompiliert (d.h. es wird aus der 
     1185Skriptsprache in Maschinencode überführt) und dann ausgeführt. Das kostet Zeit und verbraucht wertvolle 
     1186Rechenleistung. Dieses Verhalten ist eine Eigenart der in PHP geschriebenen Webanwendungen. 
     1187Webanwendungen auf Basis anderer Architekturen, beispielsweise Java implementierte, halten die Anwendung 
     1188und auch komplexe Objektmodelle und Daten persistent verfügbar (siehe Java-EE-Server; Enterprise JavaBeans). 
     1189 
    11541190Verwendet man hingegen einen OpCode Cache, so wird ein Skript zuerst kompiliert und danach kompiliert im 
    1155 Speicher (shared memory / RAM) gehalten. Jeder weitere Aufruf des Skripts wird danach aus dem Speicher 
    1156 bedient und spart Kompilierungszeit. 
     1191Speicher (shared memory / RAM) gehalten. Dieser "PHP Zwischencode" wird zumeist heftig optimiert abgelegt. 
     1192Jeder weitere Aufruf des Skripts wird danach aus dem Speicher bedient und spart Kompilierungszeit. Man kann 
     1193Programmquellcode, aber auch die zur Laufzeit des Programms anfallenden Dateninhalte, zumeist Variablen, im 
     1194Cache ablegen.Wenn Variablen vom Nutzer im Cache abgelegt werden, spricht man vom User-Cache. 
     1195 
     1196Daneben gibt es weitere Caching-Mechanismen, beispielsweise das File Caching. 
     1197Beim File Caching werden eine oder mehrere Dateien zusammengefasst und für einen schnelleren späteren Zugriff abgelegt. 
     1198Des Weiteren gibt es das sogenannte "Resolve File Path Caching", hierbei kommt ein Mapping Verfahren zum Einsatz, bei dem 
     1199für den relativen Dateipfade der jeweilige absolute Dateipfad abgelegt wird, so dass später eine erneute Pfadauflösung 
     1200entfallen kann. Ein sogenannte "Session Handling Cache" legt die Sessiondaten, genau wie der User Cache, im Shared Memory ab. 
    11571201 
    11581202Der optimale Wert für die Größe des Cache-Speichers hängt natürlich vom tatsächlich verfügbaren RAM ab. 
    1159 Wer zu hohe Cachewerte einstellt, zwingt den Server möglicherweise dazu, andere Sachen auszulagern. 
     1203Wer zu hohe Cachewerte einstellt, zwingt den Server möglicherweise dazu, andere Sachen aus dem Speicher auszulagern. 
     1204 
     1205Bevor in letzter Instanz auf die Leistungssteigerung durch einen vorkompilierenden Cache zurückgegriffen wird, 
     1206sei allen Entwicklern geraten, zunächst die eigene Applikation und Datenbank auf den Prüfstand zu bringen, 
     1207um Leistungsbremsen zu erkennen und zu beheben. 
    11601208 
    11611209.Instanzierung 
     
    11641212 
    11651213.Entwurfsmuster 
     1214Als Entwurfsmuster kommt eine Fabrik zum Einsatz. 
     1215Die Fabrik liefert lediglich den Cache-Adapter aus, den der Nutzer in der Konfiguration festgelegt hat. 
    11661216 
    11671217===== Die Cache-Adapter 
    11681218 
     1219Die Cache-Adapter sind dabei einfache Wrapper, die lediglich den Zugriff auf die Methoden der Caching- 
     1220Extensions abstrahieren und standadisieren. Die Unterstützung für ein neues Caching-System ist durch 
     1221einfaches Hinzufügen eines entsprechenden Adapters problemlos möglich. 
     1222 
    11691223====== Cache: APC 
     1224 
     1225Der Alternative PHP Cache (APC) ist ein Opcode Cache. Er cached und optimiert den PHP Quellcode und stellt ihn als 
     1226"Zwischencode" bereit. 
     1227 
     1228http://php.net/apc 
     1229http://pecl.php.net/package/APC 
    11701230 
    11711231====== Cache: eAccelerator 
Note: See TracChangeset for help on using the changeset viewer.