Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

PHP migrieren - Konzepte und Lösungen zur Migration von PHP-Anwendungen und -Umgebungen

von: Stefan Priebsch

Carl Hanser Fachbuchverlag, 2008

ISBN: 9783446416611, 356 Seiten

Format: PDF, OL

Mac OSX,Windows PC,Mac OSX,Windows PC Bookeen Cybook Orizon,Ectaco Lite,Aluratek Libre,eLyricon EBX-500.TFT,PocketBook 302,FlatReader,BeBook 'One',iRiver Story,Sony Reader PRS-3xx,Bookeen CyBook Opus,Hanvon/Hexaglot N518,PocketBook 301+,COOL-ER eReader,Inves-Book 600,eLyricon EBX-600.E-Ink, Bookeen CyBook Gen3 ab Rev: 1.9,Italica Reader,Sony Reader PRS-505, -6xx, -7xx,Pocketbook 360,Hanvon N516 Weltbild Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 39,90 EUR

  • J2EE mit Struts & Co.: Java-Projekte mit Struts, Tomcat, JBoss und Eclipse
    Oracle 10g
    GIMP2
    JBoss
    IBM WebSphere Applikationsserver
    E-Commerce Programmierung mit ASP - in 21 Tagen
    Datenbank-Anwendungen mit PostgreSQL
    Oracle-Programmierung
  • Outlook 2003 - Sicher kommunizieren, perfekt organisieren
    Web Application Development mit ColdFusion 4.5
    Apache Webserver 2
    ISA Server 2004 - Das Handbuch für Installation und Administration

     

     

     

     

     

 

Mehr zum Inhalt

PHP migrieren - Konzepte und Lösungen zur Migration von PHP-Anwendungen und -Umgebungen


 

Inhalt

6

Vorwort

12

1 Einführung

14

1.1 Eine kurze Geschichte der Internet-Zeit

14

1.2 PHP erblickt das Licht der Welt

16

1.3 PHP 5 und die große Migration

18

1.4 Blick in die Zukunft: PHP 6

20

2 Strategien

22

2.1 Never touch a running system

23

2.1.1 Systemumgebung

24

2.1.2 Programmcode

26

2.2 Immer die neueste Version einsetzen

29

2.3 Auf der grünen Wiese beginnen

31

2.3.1 Programmcode von Grund auf neu entwickeln

32

2.3.2 Die Systemumgebung von Grund auf neu aufbauen

33

2.4 Den richtigen Mittelweg finden

34

3 Aspekte einer Migration

36

3.1 Plattform

38

3.1.1 Architektur

38

3.1.2 Prozessor

39

3.1.3 Instruction Set

40

3.1.4 Wortlänge

41

3.1.5 Byte-Reihenfolge

43

3.1.6 Bauformen und Schnittstellen

44

3.2 Betriebssystem

45

3.2.1 Wortlänge

48

3.2.2 Zeilenendezeichen

48

3.2.3 Zugriffsrechte

51

3.2.4 Pfade und Dateinamen

53

3.2.5 Temporäre Dateien

56

3.2.6 Der Dateisuchpfad

57

3.2.7 Zeichensätze

57

3.3 Datenbank

60

3.3.1 SQL ist nicht gleich SQL

61

3.3.2 Programmcode in der Datenbank

62

3.3.3 Datentypen

64

3.3.4 Zeichensätze

64

3.3.5 Backup und Restore

66

3.4 Webserver

69

3.4.1 Apache und Apache2

70

3.4.2 Sicherheit

71

3.4.3 Apache übersetzen

73

3.4.4 Mehrere Webserver auf einem Rechner

74

3.5 PHP

75

3.5.1 Integration mit dem Webserver

75

3.5.2 PHP übersetzen

80

3.5.3 Thread-Modell

81

3.5.4 Die PHP-Konfiguration

82

3.5.5 PHP-Erweiterungen

100

3.5.6 Mehrere PHP-Versionen installieren

107

3.6 PHP-Code

107

3.6.1 Code von Drittanbietern

108

3.6.2 Eigener PHP-Code

109

3.7 Externe Programme

110

3.8 Schnittstellen zu Drittsystemen

113

3.9 Zeichenkodierungen

114

3.10 Browser

122

3.11 Weitere Aspekte

124

3.11.1 Harte Limits

124

3.11.2 Sicherheit

126

3.11.3 Systemkonzept

127

4 Die Migration vorbereiten

130

4.1 Der Istzustand

131

4.2 Das Zielsystem

134

4.3 Die Migration planen

137

5 Die Migration durchführen

142

5.1 Vorbereitungen

144

5.1.1 Das erste Testsystem

144

5.1.2 Das zweite Testsystem

145

5.2 Testen

146

5.2.1 Relevante Testfälle finden

147

5.2.2 Testdaten finden

148

5.2.3 Tests programmieren

149

5.3 Refactoring

151

5.3.1 Redundanten Code eliminieren

152

5.3.2 Codeblöcke kürzen

153

5.3.3 Unterschiedliche Belange trennen

153

5.4 Migrieren

155

5.4.1 Altlasten beseitigen

156

5.4.2 Module ersetzen

157

5.4.3 Syntaxfehler beseitigen

158

5.4.4 Alle PHP-Fehlermeldungen beseitigen

158

5.4.5 Logische Fehler beseitigen

159

5.4.6 Die PHP-Konfiguration normieren

159

5.5 Das Live-System migrieren

160

5.6 Die Migration abschließen

163

6 Nach der Migration

166

6.1 Gesammelte Erfahrungen

166

6.1.1 Modular programmieren

167

6.1.2 Coding Guidelines etablieren

167

6.1.3 Defensiv programmieren

167

6.1.4 Nicht der Erste sein

168

6.1.5 Laufendes Refactoring

169

6.1.6 Agile Migration

170

7 Werkzeuge

172

7.1 Versionsverwaltung

173

7.2 Kommandozeilenwerkzeuge

174

7.2.1 HTTP-Anfragen senden und Dateien herunterladen: wget

174

7.2.2 Dateien und Verzeichnisse durchsuchen: grep

176

7.2.3 Ersetzungen in Dateien vornehmen: sed

177

7.2.4 Dateien und Verzeichnissen vergleichen: diff-Werkzeuge

177

7.3 (X)HTML-Dateien validieren

179

7.3.1 Der W3C-Validator

181

7.3.2 HTML Tidy

183

7.3.3 Die PHP-Erweiterung Tidy

185

7.4 CSS-Dateien validieren

187

7.5 XML-Dateien validieren

189

7.5.1 xmllint

189

7.5.2 PHP

191

7.6 Statische Analyse von JavaScript-Dateien

191

7.6.1 jsl

192

7.6.2 JSLint

193

7.7 Firefox-Erweiterungen

195

7.7.1 Webdeveloper

195

7.7.2 XPather

197

7.7.3 Firebug

198

7.8 PHP-Bordmittel

200

7.8.1 PHP-Konfiguration

200

7.8.2 Syntaxprüfung

203

7.8.3 Prepend- und Append-Dateien

204

7.9 PEAR-Komponenten

205

7.9.1 PHP_Compat

207

7.9.2 PHP_Beautifier

208

7.9.3 PHP_CodeSniffer

212

7.9.4 PHP_CompatInfo

218

7.10 Virtuelle Maschinen

220

7.10.1 VMWare

221

7.10.2 Eine virtuelle Maschine installieren

222

7.10.3 Mit Snapshots arbeiten

224

7.11 Testwerkzeuge

225

7.11.1 Komponententests mit PHPUnit

226

7.11.2 Systemtests mit Selenium

229

7.12 Programmanalyse und Debugging

238

7.12.1 Installation

238

7.12.2 Nützliche Features

239

7.12.3 Tracing

239

7.12.4 Debugging

241

7.12.5 Codeabdeckung

244

7.13 Build-Automation

245

7.13.1 Installation

245

7.13.2 Codequalitätssicherung

246

7.13.3 Testautomation

248

7.13.4 Codeabdeckungsstatistiken

250

8 PHP-Code migrieren

252

8.1 Groß- und Kleinschreibung

253

8.1.1 Variablen

255

8.1.2 Konstanten

256

8.1.3 Magische Konstanten

259

8.1.4 Funktionen und Methoden

260

8.1.5 Klassen

261

8.1.6 Dateien

262

8.2 Namenskonflikte

263

8.2.1 Reservierte Schlüsselwörter

264

8.2.2 Funktionen

267

8.2.3 Klassen, Interfaces und Exceptions

268

8.2.4 Konstanten

271

8.2.5 Magische Konstanten, Funktionen und Methoden

274

8.2.6 Variablen

274

8.2.7 Komponenten und Bibliotheken

276

8.3 Verarbeitung von Eingabedaten

279

8.3.1 Globale Variablen registrieren

279

8.3.2 Lange Eingabe-Arrays

282

8.3.3 Superglobale Variablen

282

8.3.4 Magic Quotes

283

8.3.5 Auf POST-Daten zugreifen

287

8.3.6 Skriptname: $PHP_SELF

288

8.4 Fehlerbehandlung

289

8.4.1 Fehler unterdrücken mit @

290

8.4.2 Die letzte Fehlermeldung speichern

291

8.4.3 Die Fehleranzeige konfigurieren

292

8.4.4 Neue und geänderte Fehlermeldungen

293

8.4.5 Eigene Fehler-Handler

296

8.4.6 Exceptions

298

8.5 Referenzen

298

8.5.1 Der PHP 4-Kompatibilitätsmodus

299

8.5.2 Eine Referenz erzeugen

300

8.5.3 Referenzen übergeben

301

8.5.4 Referenzen zurückgeben

303

8.5.5 Zur Laufzeit Referenzen übergeben

304

8.5.6 Objekte kopieren

305

8.6 Magische Konstanten

306

8.7 Geändertes Verhalten von PHP-Funktionen

308

8.7.1 array_merge()

308

8.7.2 ip2long()

310

8.7.3 strrpos()

310

8.7.4 strripos()

311

8.7.5 strtotime()

311

8.8 Klassen

312

8.8.1 Statische Methoden und dynamische Aufrufe

312

8.8.2 Abstrakte private Methoden

313

8.8.3 Abstrakte statische Methoden

313

8.8.4 Geänderte Methodensignatur in abgeleiteten Klassen

314

8.9 Objekte

315

8.9.1 Konstruktor

315

8.9.2 Destruktoren

317

8.9.3 Klassenkonstanten neu definieren

318

8.9.4 instanceOf anstelle von is_a()

318

8.9.5 Namenskonflikte mit $this

319

8.9.6 $this neu zuweisen

320

8.9.7 Objekte vergleichen

321

8.10 Dynamische Aufrufe

321

8.10.1 Systemaufrufe

322

8.10.2 Klassennamen

323

8.10.3 Die call_user_func()-Familie

324

8.10.4 Nachgeladener Code

326

8.10.5 eval

327

8.11 Kleine Gemeinheiten

328

8.11.1 unset() und Zeichenketten

328

8.11.2 Fehler beim Senden der HTTP-Header

329

8.11.3 Datums- und Zeitfunktionen

331

8.11.4 Modulo-Division

331

8.11.5 Falsche Parameteranzahl in Funktionsaufrufen

332

8.11.6 Automatisches Umwandeln von Integer-Werten

334

8.11.7 Leere Objekte

335

8.11.8 $this, Delegation und statische Aufrufe

335

8.11.9 Objekte ausgeben und die magische Methode __toString()

337

8.12 PHP-Erweiterungen

337

8.12.1 mysql und mysqli

338

8.12.2 SPL

339

8.12.3 Tidy

339

8.12.4 Tokenizer

339

8.12.5 XML

339

Literatur

342

Register

346