zf2

1217
Zend Framework 2 Documentation Release 2.0.6 Zend Technologies Ltd. January 27, 2013

Upload: radu-pavelco

Post on 02-Nov-2014

215 views

Category:

Documents


23 download

DESCRIPTION

zf2

TRANSCRIPT

Zend Framework 2 DocumentationRelease 2.0.6

Zend Technologies Ltd.

January 27, 2013

CONTENTS

1 2 3

Overview Installation Getting Started with Zend Framework 2 3.1 Some assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 The tutorial application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getting started: A skeleton application 4.1 Virtual host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unit Testing 5.1 Setting up the tests directory 5.2 Bootstrapping your tests . . 5.3 Your rst Controller test . . 5.4 Testing . . . . . . . . . . .

1 3 5 5 5 7 8 9 9 9 12 13 15 15 16 17 19 20 25 25 25 28 30 33 33 35 37 37 42 45 47

4

5

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

6

Modules 6.1 Setting up the Album module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Informing the application about our new module . . . . . . . . . . . . . . . . . . . . . . . . . . . . Routing and controllers 7.1 Create the controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Database and models 8.1 The database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 The model les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Using ServiceManager to congure the table gateway and inject into the AlbumTable . 8.4 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5 Back to the controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6 Listing albums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Styling and Translations

7

8

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

9

10 Forms and actions 10.1 Adding new albums . . . . . . . . . . . . . . . . . . . 10.2 Editing an album . . . . . . . . . . . . . . . . . . . . . 10.3 Deleting an album . . . . . . . . . . . . . . . . . . . . 10.4 Ensuring that the home page displays the list of albums .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

i

11 Conclusion 12 Learning Dependency Injection 12.1 Very brief introduction to Di. . . . . . . . . . . . . . . 12.2 Very brief introduction to Di Container. . . . . . . . . . 12.3 Simplest usage case (2 classes, one consumes the other) 12.4 Simplest Usage Case Without Type-hints . . . . . . . . 12.5 Simplest usage case with Compiled Denition . . . . . 12.6 Creating a precompiled denition for others to use . . . 12.7 Using Multiple Denitions From Multiple Sources . . . 12.8 Generating Service Locators . . . . . . . . . . . . . . . 13 Introduction 13.1 Adapters . . . . . . 13.2 Results . . . . . . . 13.3 Identity Persistence . 13.4 Usage . . . . . . . .

49 51 51 51 51 53 55 56 56 57 61 61 62 63 66 69 69 69 71 75 75 75 75 77 77 77 77 78 79 81 81 81 83 84 86 86 89 91 91 92 93 95 95 97 99 99

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

14 Database Table Authentication 14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2 Basic Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3 Advanced Usage: Persisting a DbTable Result Object . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Digest Authentication 15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Specics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3 Identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 HTTP Authentication Adapter 16.1 Introduction . . . . . . . 16.2 Design Overview . . . . . 16.3 Conguration Options . . 16.4 Resolvers . . . . . . . . . 16.5 Basic Usage . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

17 LDAP Authentication 17.1 Introduction . . . . . . . . . . . . . 17.2 Usage . . . . . . . . . . . . . . . . . 17.3 The API . . . . . . . . . . . . . . . 17.4 Server Options . . . . . . . . . . . . 17.5 Collecting Debugging Messages . . . 17.6 Common Options for Specic Servers 18 Introduction

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

19 Barcode creation using Zend\Barcode\Barcode class 19.1 Using Zend\Barcode\Barcode::factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.2 Drawing a barcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.3 Renderering a barcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Zend\Barcode\Barcode Objects 20.1 Common Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.2 Common Additional Getters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Description of shipped barcodes 21.1 Zend\Barcode\Object\Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 21.10 21.11 21.12 21.13 21.14 21.15 21.16 21.17 21.18

Zend\Barcode\Object\Code128 . . . . . Zend\Barcode\Object\Codabar . . . . . . Zend\Barcode\Object\Code25 . . . . . . Zend\Barcode\Object\Code25interleaved Zend\Barcode\Object\Ean2 . . . . . . . Zend\Barcode\Object\Ean5 . . . . . . . Zend\Barcode\Object\Ean8 . . . . . . . Zend\Barcode\Object\Ean13 . . . . . . . Zend\Barcode\Object\Code39 . . . . . . Zend\Barcode\Object\Identcode . . . . . Zend\Barcode\Object\Itf14 . . . . . . . . Zend\Barcode\Object\Leitcode . . . . . . Zend\Barcode\Object\Planet . . . . . . . Zend\Barcode\Object\Postnet . . . . . . Zend\Barcode\Object\Royalmail . . . . . Zend\Barcode\Object\Upca . . . . . . . Zend\Barcode\Object\Upce . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

99 99 100 100 100 101 101 101 102 102 102 103 103 103 104 104 104

22 Zend\Barcode Renderers 107 22.1 Common Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 22.2 Zend\Barcode\Renderer\Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 22.3 Zend\Barcode\Renderer\Pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 23 Zend\Cache\Storage\Adapter 23.1 Overview . . . . . . . . . . . . . . . 23.2 Quick Start . . . . . . . . . . . . . . 23.3 Basic Conguration Options . . . . . 23.4 The StorageInterface . . . . . . . . . 23.5 The AvailableSpaceCapableInterface 23.6 The TotalSpaceCapableInterface . . . 23.7 The ClearByNamespaceInterface . . 23.8 The ClearByPrexInterface . . . . . 23.9 The ClearExpiredInterface . . . . . . 23.10 The FlushableInterface . . . . . . . . 23.11 The IterableInterface . . . . . . . . . 23.12 The OptimizableInterface . . . . . . 23.13 The TaggableInterface . . . . . . . . 23.14 The Apc Adapter . . . . . . . . . . . 23.15 The Dba Adapter . . . . . . . . . . . 23.16 The Filesystem Adapter . . . . . . . 23.17 The Memcached Adapter . . . . . . 23.18 The Memory Adapter . . . . . . . . 23.19 The WinCache Adapter . . . . . . . 23.20 The ZendServerDisk Adapter . . . . 23.21 The ZendServerShm Adapter . . . . 23.22 Examples . . . . . . . . . . . . . . . 109 109 109 110 110 112 112 112 113 113 113 113 113 114 114 115 116 117 118 119 120 120 121 123 123 123 125

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

24 Zend\Cache\Storage\Capabilities 24.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24.2 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25 Zend\Cache\Storage\Plugin 127 25.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 25.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 iii

25.3 25.4 25.5 25.6 25.7 25.8 25.9

The ClearExpiredByFactor Plugin The ExceptionHandler Plugin . . The IgnoreUserAbort Plugin . . . The OptimizeByFactor Plugin . . The Serializer Plugin . . . . . . . Available Methods . . . . . . . . Examples . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

128 128 128 128 129 129 130

26 Zend\Cache\Pattern 131 26.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 26.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 26.3 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 27 Zend\Cache\Pattern\CallbackCache 27.1 Overview . . . . . . . . . . . . 27.2 Quick Start . . . . . . . . . . . 27.3 Conguration Options . . . . . 27.4 Available Methods . . . . . . . 27.5 Examples . . . . . . . . . . . . 28 Zend\Cache\Pattern\ClassCache 28.1 Overview . . . . . . . . . . 28.2 Quick Start . . . . . . . . . 28.3 Conguration Options . . . 28.4 Available Methods . . . . . 28.5 Examples . . . . . . . . . . 133 133 133 133 134 134 135 135 135 135 135 136 139 139 139 139 140 140 143 143 143 143 143 144 145 145 145 145 146 146 147 149

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

29 Zend\Cache\Pattern\ObjectCache 29.1 Overview . . . . . . . . . . . 29.2 Quick Start . . . . . . . . . . 29.3 Conguration Options . . . . 29.4 Available Methods . . . . . . 29.5 Examples . . . . . . . . . . . 30 Zend\Cache\Pattern\OutputCache 30.1 Overview . . . . . . . . . . . 30.2 Quick Start . . . . . . . . . . 30.3 Conguration Options . . . . 30.4 Available Methods . . . . . . 30.5 Examples . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

31 Zend\Cache\Pattern\CaptureCache 31.1 Overview . . . . . . . . . . . . 31.2 Quick Start . . . . . . . . . . . 31.3 Conguration Options . . . . . 31.4 Available Methods . . . . . . . 31.5 Examples . . . . . . . . . . . . 32 Introduction 33 Captcha Operation

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

34 CAPTCHA Adapters 151 34.1 Zend\Captcha\AbstractWord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 34.2 Zend\Captcha\Dumb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

iv

34.3 Zend\Captcha\Figlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 34.4 Zend\Captcha\Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 34.5 Zend\Captcha\ReCaptcha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 35 Introduction 155 35.1 Using Zend\Cong\Cong with a Reader Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 35.2 Using Zend\Cong\Cong with a PHP Conguration File . . . . . . . . . . . . . . . . . . . . . . . 156 36 Theory of Operation 37 Zend\Cong\Reader 37.1 Zend\Cong\Reader\Ini . 37.2 Zend\Cong\Reader\Xml 37.3 Zend\Cong\Reader\Json 37.4 Zend\Cong\Reader\Yaml 157 159 159 160 161 162 165 165 166 167 167 168 171 171 171 172 172 173

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

38 Zend\Cong\Writer 38.1 Zend\Cong\Writer\Ini . . . . 38.2 Zend\Cong\Writer\Xml . . . 38.3 Zend\Cong\Writer\PhpArray 38.4 Zend\Cong\Writer\Json . . . 38.5 Zend\Cong\Writer\Yaml . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

39 Zend\Cong\Processor 39.1 Zend\Cong\Processor\Constant . 39.2 Zend\Cong\Processor\Filter . . 39.3 Zend\Cong\Processor\Queue . . 39.4 Zend\Cong\Processor\Token . . 39.5 Zend\Cong\Processor\Translator

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

40 The Factory 175 40.1 Loading conguration le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 40.2 Storing conguration le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 41 Introduction 177 41.1 Writing console routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 41.2 Handling console requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 41.3 Adding console usage info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 42 Console routes and routing 42.1 Router conguration . . . 42.2 Basic route . . . . . . . . 42.3 Catchall route . . . . . . . 42.4 Console routes cheat-sheet 183 183 184 188 189

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

43 Console-aware modules 191 43.1 Application banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 43.2 Usage information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 44 Console-aware action controllers 44.1 Handling console requests . . . . . . . . 44.2 Sending output to console . . . . . . . . 44.3 Are we in a console? . . . . . . . . . . . 44.4 Reading values from console parameters 197 197 199 199 201

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

v

45 Console adapters 205 45.1 Retreving console adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 45.2 Using console adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 46 Console prompts 46.1 Conrm . . 46.2 Line . . . . 46.3 Char . . . 46.4 Select . . . 47 Introduction 48 Encrypt/decrypt using block ciphers 209 209 210 210 211 213 215

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

49 Key derivation function 217 49.1 Pbkdf2 adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 49.2 SaltedS2k adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 50 Secure Password Storing 219

51 Public key cryptography 221 51.1 Dife-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 51.2 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 52 Zend\Db\Adapter 52.1 Creating an Adapter - Quickstart . . . . . . . . . . . . . . . . . 52.2 Creating an Adapter Using Dependency Injection . . . . . . . . 52.3 Query Preparation Through Zend\Db\Adapter\Adapter::query() 52.4 Query Execution Through Zend\Db\Adapter\Adapter::query() . 52.5 Creating Statements . . . . . . . . . . . . . . . . . . . . . . . 52.6 Using the Driver Object . . . . . . . . . . . . . . . . . . . . . 52.7 Using The Platform Object . . . . . . . . . . . . . . . . . . . . 52.8 Using The Parameter Container . . . . . . . . . . . . . . . . . 52.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 225 226 226 227 227 227 229 230 231 233 233 234 234 237 237 238 238 241 242 242 242

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

53 Zend\Db\ResultSet 53.1 Quickstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.2 Zend\Db\ResultSet\ResultSet and Zend\Db\ResultSet\AbstractResultSet . . . . . . . . . . . . . . . . 53.3 Zend\Db\ResultSet\HydratingResultSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Zend\Db\Sql 54.1 Zend\Db\Sql\Sql (Quickstart) . . . . . . . . . . 54.2 Zend\Db\Sqls Select, Insert, Update and Delete 54.3 Zend\Db\Sql\Select . . . . . . . . . . . . . . . . 54.4 Zend\Db\Sql\Insert . . . . . . . . . . . . . . . . 54.5 Zend\Db\Sql\Update . . . . . . . . . . . . . . . 54.6 Zend\Db\Sql\Delete . . . . . . . . . . . . . . . 54.7 Zend\Db\Sql\Where & Zend\Db\Sql\Having . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

55 Zend\Db\TableGateway 247 55.1 Basic Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 55.2 TableGateway Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 56 Zend\Db\RowGateway 251 56.1 Quickstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

vi

57 Zend\Db\Metadata 253 57.1 Basic Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 58 Introduction to Zend\Di 257 58.1 Dependency Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 58.2 Dependency Injection Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 59 Zend\Di Quickstart 60 Zend\Di Denition 60.1 DenitionList . . . 60.2 RuntimeDenition 60.3 CompilerDenition 60.4 ClassDenition . . 259 263 263 263 264 265 267 267 268 269 271

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

61 Zend\Di InstanceManager 61.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Zend\Di Conguration

63 Zend\Di Debugging & Complex Use Cases 273 63.1 Debugging a DiC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 63.2 Complex Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 64 Introduction 277

65 Zend\Dom\Query 279 65.1 Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 65.2 Methods Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 66 The EventManager 66.1 Overview . . . . . . . 66.2 Quick Start . . . . . . 66.3 Conguration Options 66.4 Available Methods . . 66.5 Examples . . . . . . . 67 Introduction 283 283 283 286 286 288 293

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

68 Importing Feeds 295 68.1 Dumping the contents of a feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 69 Retrieving Feeds from Web Pages 70 Consuming an RSS Feed 71 Consuming an Atom Feed 72 Consuming a Single Atom Entry 297 299 301 303

73 Zend\Feed and Security 305 73.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 73.2 Filtering data using HTMLPurier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 73.3 Escaping data using Zend\Escaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

vii

74 Zend\Feed\Reader\Reader 74.1 Introduction . . . . . . . . . . . . . . . . . . 74.2 Importing Feeds . . . . . . . . . . . . . . . . 74.3 Retrieving Underlying Feed and Entry Sources 74.4 Cache Support and Intelligent Requests . . . . 74.5 Locating Feed URIs from Websites . . . . . . 74.6 Attribute Collections . . . . . . . . . . . . . . 74.7 Retrieving Feed Information . . . . . . . . . . 74.8 Retrieving Entry/Item Information . . . . . . . 74.9 Extending Feed and Entry APIs . . . . . . . . 75 Zend\Feed\Writer\Writer 75.1 Introduction . . . . . . . 75.2 Architecture . . . . . . . 75.3 Getting Started . . . . . . 75.4 Setting Feed Data Points . 75.5 Setting Entry Data Points

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

309 309 309 310 311 312 313 313 316 317 323 323 323 324 326 328 331 331 331 332 333

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

76 Zend\Feed\PubSubHubbub 76.1 What is PubSubHubbub? . . . . . . . . 76.2 Architecture . . . . . . . . . . . . . . 76.3 Zend\Feed\PubSubHubbub\Publisher . 76.4 Zend\Feed\PubSubHubbub\Subscriber

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

77 Introduction 339 77.1 What is a lter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 77.2 Basic usage of lters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 78 Using the StaticFilter 341 78.1 Double ltering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 79 Standard Filter Classes 79.1 Alnum . . . . . . . . . . . 79.2 Alpha . . . . . . . . . . . . 79.3 BaseName . . . . . . . . . 79.4 Boolean . . . . . . . . . . . 79.5 Callback . . . . . . . . . . 79.6 Compress and Decompress . 79.7 Digits . . . . . . . . . . . . 79.8 Dir . . . . . . . . . . . . . 79.9 Encrypt and Decrypt . . . . 79.10 HtmlEntities . . . . . . . . 79.11 Int . . . . . . . . . . . . . . 79.12 Null . . . . . . . . . . . . . 79.13 NumberFormat . . . . . . . 79.14 PregReplace . . . . . . . . 79.15 RealPath . . . . . . . . . . 79.16 StringToLower . . . . . . . 79.17 StringToUpper . . . . . . . 79.18 StringTrim . . . . . . . . . 79.19 StripNewLines . . . . . . . 79.20 StripTags . . . . . . . . . . 343 343 344 344 345 347 349 354 355 355 361 363 363 364 365 366 367 367 368 369 369

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

80 Word Filters 371 80.1 CamelCaseToDash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

viii

80.2 80.3 80.4 80.5 80.6 80.7 80.8 80.9 80.10 80.11 80.12

CamelCaseToSeparator . CamelCaseToUnderscore DashToCamelCase . . . . DashToSeparator . . . . . DashToUnderscore . . . . SeparatorToCamelCase . SeparatorToDash . . . . . SeparatorToSeparator . . UnderscoreToCamelCase UnderscoreToSeparator . UnderscoreToDash . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

371 372 372 373 373 374 374 375 376 376 377

81 Filter Chains 379 81.1 Setting Filter Chain Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 81.2 Using the Plugin Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 82 Zend\Filter\Inector 82.1 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Using Custom Filters . . . . . . . . . . . . . . . . . . . . 82.3 Setting the Inector Target . . . . . . . . . . . . . . . . . 82.4 Inection Rules . . . . . . . . . . . . . . . . . . . . . . . 82.5 Utility Methods . . . . . . . . . . . . . . . . . . . . . . . 82.6 Using a Traversable or an array with Zend\Filter\Inector 83 Writing Filters 84 Introduction to Zend\Form 85 Form Quick Start 85.1 Programmatic Form Creation . 85.2 Creation via Factory . . . . . . 85.3 Factory-backed Form Extension 85.4 Validating Forms . . . . . . . . 85.5 Hinting to the Input Filter . . . 85.6 Binding an object . . . . . . . . 85.7 Rendering . . . . . . . . . . . 85.8 Validation Groups . . . . . . . 85.9 Using Annotations . . . . . . . 381 381 382 382 383 385 385 387 389 391 391 392 395 397 398 400 401 404 404 407 410 414 415 415 416 418 421 421 421 423 436

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

86 Form Collections 86.1 Creating Fieldsets . . . . . . . . . . . . . . 86.2 The Form Element . . . . . . . . . . . . . . 86.3 The Controller . . . . . . . . . . . . . . . . 86.4 The View . . . . . . . . . . . . . . . . . . . 86.5 Adding New Elements Dynamically . . . . . 86.6 Validation groups for eldsets and collection 87 Form Elements 87.1 Introduction . . . . 87.2 Element Base Class 87.3 Standard Elements . 87.4 HTML5 Elements .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

88 Form View Helpers 449 88.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

ix

88.2 Standard Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 88.3 HTML5 Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 89 Overview of Zend\Http 465 89.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 89.2 Zend\Http Request, Response and Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 90 The Request Class 90.1 Overview . . . . . . . 90.2 Quick Start . . . . . . 90.3 Conguration Options 90.4 Available Methods . . 90.5 Examples . . . . . . . 91 The Response Class 91.1 Overview . . . . . . . 91.2 Quick Start . . . . . . 91.3 Conguration Options 91.4 Available Methods . . 91.5 Examples . . . . . . . 467 467 467 468 468 471 473 473 473 474 474 476 479 479 479 480 480 482 482 483 487 487 487 488 488 491 495 495 495 498 499 500 502 505 505 505 507 507 508 509 509 510

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

92 The Headers Class 92.1 Overview . . . . . . . . . . . . . . 92.2 Quick Start . . . . . . . . . . . . . 92.3 Conguration Options . . . . . . . 92.4 Available Methods . . . . . . . . . 92.5 Zend\Http\Header\* Base Methods 92.6 List of HTTP Header Types . . . . 92.7 Examples . . . . . . . . . . . . . . 93 HTTP Client - Overview 93.1 Overview . . . . . . . 93.2 Quick Start . . . . . . 93.3 Conguration Options 93.4 Available Methods . . 93.5 Examples . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

94 HTTP Client - Connection Adapters 94.1 Overview . . . . . . . . . . . . . . . . 94.2 The Socket Adapter . . . . . . . . . . 94.3 The Proxy Adapter . . . . . . . . . . . 94.4 The cURL Adapter . . . . . . . . . . . 94.5 The Test Adapter . . . . . . . . . . . . 94.6 Creating your own connection adapters

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

95 HTTP Client - Advanced Usage 95.1 HTTP Redirections . . . . . . . . . . . . . . . . 95.2 Adding Cookies and Using Cookie Persistence . 95.3 Setting Custom Request Headers . . . . . . . . 95.4 File Uploads . . . . . . . . . . . . . . . . . . . 95.5 Sending Raw POST Data . . . . . . . . . . . . 95.6 HTTP Authentication . . . . . . . . . . . . . . 95.7 Sending Multiple Requests With the Same Client 95.8 Data Streaming . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

x

96 HTTP Client - Static Usage 96.1 Overview . . . . . . . 96.2 Quick Start . . . . . . 96.3 Conguration Options 96.4 Available Methods . . 97 Translating 97.1 Adding translations . 97.2 Supported formats . 97.3 Setting a locale . . . 97.4 Translating messages 97.5 Caching . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

513 513 513 513 514 515 515 516 516 516 516 517 517 517 518 519 520 520 521

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

98 I18n View Helpers 98.1 Introduction . . . . . . . 98.2 CurrencyFormat Helper . 98.3 DateFormat Helper . . . . 98.4 NumberFormat Helper . . 98.5 Translate Helper . . . . . 98.6 TranslatePlural Helper . . 98.7 Abstract Translator Helper

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

99 I18n Filters 523 99.1 Alnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 99.2 Alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 99.3 NumberFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 100I18n Validators 527

101Float 529 101.1 Supported options for Zend\I18n\Validator\Float . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 101.2 Simple oat validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 101.3 Localized oat validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 102Int 531 102.1 Supported options for Zend\I18n\Validator\Int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 102.2 Simple integer validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 102.3 Localized integer validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 103Introduction 104Introduction 533 537

105Basic Usage 539 105.1 Pretty-printing JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 106Advanced Usage of Zend\Json 106.1 JSON Objects . . . . . . 106.2 Encoding PHP objects . . 106.3 Internal Encoder/Decoder 106.4 JSON Expressions . . . . 107XML to JSON conversion 541 541 541 542 542 543

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

108Zend\Json\Server - JSON-RPC server 545 108.1 Advanced Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547

xi

109Introduction 553 109.1 Theory of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 110API overview 557 110.1 Conguration / options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 110.2 API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 111Zend\Ldap\Ldap 559 111.1 Zend\Ldap\Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 112Zend\Ldap\Attribute 113Zend\Ldap\Converter\Converter 114Zend\Ldap\Dn 115Zend\Ldap\Filter 116Zend\Ldap\Node 561 563 565 567 569

117Zend\Ldap\Node\RootDse 571 117.1 OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 117.2 ActiveDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 117.3 eDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 118Zend\Ldap\Node\Schema 577 118.1 OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 118.2 ActiveDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 119Zend\Ldap\Ldif\Encoder 581

120Usage Scenarios 583 120.1 Authentication scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 120.2 Basic CRUD operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 120.3 Extended operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 121Tools 121.1 Creation and modication of DN strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2 Using the lter API to create search lters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 Modify LDAP entries using the Attribute API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Object oriented access to the LDAP tree using Zend\Ldap\Node 122.1 Basic CRUD operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Extended operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Tree traversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 587 587 587 589 589 589 589

123Getting information from the LDAP server 591 123.1 RootDSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 123.2 Schema Browsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 124Serializing LDAP data to and from LDIF 593 124.1 Serialize a LDAP entry to LDIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 124.2 Deserialize a LDIF string into a LDAP entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 125The AutoloaderFactory 597 125.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 125.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 xii

125.3 Conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 125.4 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 125.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 126The StandardAutoloader 126.1 Overview . . . . . . . 126.2 Quick Start . . . . . . 126.3 Conguration Options 126.4 Available Methods . . 126.5 Examples . . . . . . . 127The ClassMapAutoloader 127.1 Overview . . . . . . . 127.2 Quick Start . . . . . . 127.3 Conguration Options 127.4 Available Methods . . 127.5 Examples . . . . . . . 128The ModuleAutoloader 128.1 Overview . . . . . . . 128.2 Quickstart . . . . . . 128.3 Conguration Options 128.4 Available Methods . . 128.5 Examples . . . . . . . 599 599 600 601 601 602 603 603 603 603 604 605 607 607 607 607 608 608 609 609 609 610 610 611 613 613 613 614 614 615 619 619 619 619 620 620 621 621 621 621 621 622

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

129The SplAutoloader Interface 129.1 Overview . . . . . . . . 129.2 Quick Start . . . . . . . 129.3 Conguration Options . 129.4 Available Methods . . . 129.5 Examples . . . . . . . . 130The PluginClassLoader 130.1 Overview . . . . . . . 130.2 Quick Start . . . . . . 130.3 Conguration Options 130.4 Available Methods . . 130.5 Examples . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

131The ShortNameLocator Interface 131.1 Overview . . . . . . . . . . . 131.2 Quick Start . . . . . . . . . . 131.3 Conguration Options . . . . 131.4 Available Methods . . . . . . 131.5 Examples . . . . . . . . . . . 132The PluginClassLocator interface 132.1 Overview . . . . . . . . . . . 132.2 Quick Start . . . . . . . . . . 132.3 Conguration Options . . . . 132.4 Available Methods . . . . . . 132.5 Examples . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

133The Class Map Generator utility: bin/classmap_generator.php 623 133.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623

xiii

133.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 133.3 Conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 134Overview 134.1 Creating a Log . . . . . . 134.2 Logging Messages . . . . 134.3 Destroying a Log . . . . . 134.4 Using Built-in Priorities . 134.5 Understanding Log Events 134.6 Log PHP Errors . . . . . 135Writers 135.1 Writing to Streams . . . 135.2 Writing to Databases . . 135.3 Writing to FirePHP . . . 135.4 Stubbing Out the Writer 135.5 Testing with the Mock . 135.6 Compositing Writers . . 625 625 626 626 626 627 627 629 629 630 630 631 631 631

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

136Filters 633 136.1 Available lters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 137Formatters 137.1 Simple Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137.2 Formatting to XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137.3 Formatting to FirePhp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 635 635 636

138Introduction 637 138.1 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 138.2 Conguring the default sendmail transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 139Zend\Mail\Message 139.1 Overview . . . . . . . 139.2 Quick Start . . . . . . 139.3 Conguration Options 139.4 Available Methods . . 139.5 Examples . . . . . . . 140Zend\Mail\Transport 140.1 Overview . . . . . . . 140.2 Quick Start . . . . . . 140.3 Conguration Options 140.4 Available Methods . . 140.5 Examples . . . . . . . 639 639 639 641 641 644 645 645 645 646 646 647 649 649 649 651 651 652

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

141Zend\Mail\Transport\SmtpOptions 141.1 Overview . . . . . . . . . . . . 141.2 Quick Start . . . . . . . . . . . 141.3 Conguration Options . . . . . 141.4 Available Methods . . . . . . . 141.5 Examples . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

142Zend\Mail\Transport\FileOptions 653 142.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 142.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653

xiv

142.3 Conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 142.4 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 142.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 143Introduction 655 143.1 Random number generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 143.2 Big integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 144Zend\Mime 659 144.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 144.2 Static Methods and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 144.3 Instantiating Zend\Mime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 145Zend\Mime\Message 145.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 145.2 Instantiation . . . . . . . . . . . . . . . . . . . . . . 145.3 Adding MIME Parts . . . . . . . . . . . . . . . . . . 145.4 Boundary handling . . . . . . . . . . . . . . . . . . . 145.5 Parsing a string to create a Zend\Mime\Message object 145.6 Available methods . . . . . . . . . . . . . . . . . . . 146Zend\Mime\Part 146.1 Introduction . . . . . . . . . . . . . . . . . . . . 146.2 Instantiation . . . . . . . . . . . . . . . . . . . . 146.3 Methods for rendering the message part to a string 146.4 Available methods . . . . . . . . . . . . . . . . . 661 661 661 661 661 662 662 663 663 663 663 664

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

147Introduction to the Module System 665 147.1 The autoload_*.php Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 148The Module Manager 667 148.1 Module Manager Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 148.2 Module Manager Listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 149The Module Class 149.1 A Minimal Module . . . . . . . 149.2 A Typical Module Class . . . . 149.3 The loadModules.post Event 149.4 The MVC bootstrap Event . . 671 671 671 672 673

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

150The Module Autoloader 675 150.1 Module Autoloader Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 150.2 Non-Standard / Explicit Module Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 150.3 Packaging Modules with Phar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 151Best Practices when Creating Modules 152Introduction to the MVC Layer 152.1 Basic Application Structure . . . . . 152.2 Basic Module Structure . . . . . . . 152.3 Bootstrapping an Application . . . . 152.4 Bootstrapping a Modular Application 152.5 Conclusion . . . . . . . . . . . . . . 679 681 681 682 684 685 686

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

153Quick Start 687 153.1 Install the Zend Skeleton Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 xv

153.2 153.3 153.4 153.5 153.6 153.7 153.8

Create a New Module . . . . . . . . . Update the Module Class . . . . . . . . Create a Controller . . . . . . . . . . . Create a View Script . . . . . . . . . . Create a Route . . . . . . . . . . . . . Tell the Application About our Module Test it Out! . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

688 688 689 690 690 692 692 695 695 695 698 699 700 703 705 705 711 713 715

154Default Services 154.1 Theory of Operation . . . . . . . . 154.2 ServiceManager . . . . . . . . . . 154.3 ViewManager . . . . . . . . . . . . 154.4 Application Conguration Options 154.5 Default Conguration Options . . . 155Routing 155.1 Router Types . . . . . . . 155.2 HTTP Route Types . . . . 155.3 HTTP Routing Examples 155.4 Console Route Types . . . 156The MvcEvent

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

157Available Controllers 717 157.1 Common Interfaces Used With Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 157.2 The AbstractActionController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719 157.3 The AbstractRestfulController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720 158Controller Plugins 158.1 The FlashMessenger . . . . . 158.2 The Forward Plugin . . . . . 158.3 The Layout Plugin . . . . . . 158.4 The Params Plugin . . . . . . 158.5 The Post/Redirect/Get Plugin 158.6 The Redirect Plugin . . . . . 158.7 The Url Plugin . . . . . . . . 723 723 724 725 725 725 726 727

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

159Examples 729 159.1 Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 159.2 Bootstrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 160Introduction 731 160.1 Pages and Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 160.2 Separation of data (model) and rendering (view) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 161Zend\Navigation Quick Start 162Pages 163Common page features 164Zend\Navigation\Page\Mvc 165Zend\Navigation\Page\Uri 166Creating custom page types 733 735 737 739 743 745

xvi

167Creating pages using the page factory 168Containers 168.1 Creating containers 168.2 Adding pages . . . 168.3 Removing pages . 168.4 Finding pages . . . 168.5 Iterating containers 168.6 Other operations . 169Introduction 170Usage 170.1 Paginating data collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170.2 The DbSelect adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170.3 Rendering pages with view scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171Conguration 172Advanced usage 172.1 Custom data source adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Custom scrolling styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3 Caching features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Introduction 173.1 Resources . . . . . . . . . . . . . 173.2 Roles . . . . . . . . . . . . . . . 173.3 Creating the Access Control List . 173.4 Registering Roles . . . . . . . . . 173.5 Dening Access Controls . . . . 173.6 Querying an ACL . . . . . . . .

747 749 749 755 756 757 759 760 763 765 765 766 767 773 775 775 775 776 779 779 780 781 781 782 783

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

174Rening Access Controls 785 174.1 Precise Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 174.2 Removing Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 175Advanced Usage 789 175.1 Storing ACL Data for Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 175.2 Writing Conditional ACL Rules with Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 176Introduction 791 176.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 176.2 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 176.3 Dynamic Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 177Methods 793

178Examples 795 178.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795 178.2 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 178.3 Dynamic Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 179Introduction to Zend\Serializer 179.1 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179.2 Basic conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179.3 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 799 800 800

xvii

180Zend\Serializer\Adapter 180.1 The PhpSerialize Adapter 180.2 The IgBinary Adapter . . 180.3 The Wddx Adapter . . . . 180.4 The Json Adapter . . . . . 180.5 The PythonPickle Adapter 180.6 The PhpCode Adapter . . 181Introduction

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

803 803 803 803 804 804 805 807

182Zend\Server\Reection 809 182.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 182.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 183Zend\ServiceManager 811

184Zend\ServiceManager Quick Start 813 184.1 Using Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 184.2 Modules as Service Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814 184.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814 185Zend\Soap\Server 185.1 Zend\Soap\Server constructor . . . . . 185.2 Methods to dene Web Service API . . 185.3 Request and response objects handling 185.4 Document/Literal WSDL Handling . . 819 819 820 821 823

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

186Zend\Soap\Client 825 186.1 Zend\Soap\Client Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825 186.2 Performing SOAP Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 187WSDL Accessor 187.1 Zend\Soap\Wsdl constructor . . 187.2 addMessage() method . . . . . 187.3 addPortType() method . . . . . 187.4 addPortOperation() method . . 187.5 addBinding() method . . . . . . 187.6 addBindingOperation() method 187.7 addSoapBinding() method . . . 187.8 addSoapOperation() method . . 187.9 addService() method . . . . . . 187.10Type mapping . . . . . . . . . 187.11addDocumentation() method . . 187.12Get nalized WSDL document 188AutoDiscovery 188.1 AutoDiscovery Introduction 188.2 Class autodiscovering . . . 188.3 Functions autodiscovering . 188.4 Autodiscovering Datatypes . 188.5 WSDL Binding Styles . . . 829 829 829 830 830 830 831 831 831 831 832 833 834 835 835 836 837 837 837

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. .