1097
Zend Framework 2 Documentation Release 2.0.3 Zend Technologies Ltd. October 17, 2012

ZendFramework 2.0.3 Manual En

Embed Size (px)

Citation preview

Zend Framework 2 DocumentationRelease 2.0.3

Zend Technologies Ltd.

October 17, 2012

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 11 11 11 12 13 15 15 16 17 19 20 25 25 25 28 30 33 33 37

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

i

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 . 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 . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

39 39 44 46 48 49 51 51 51 51 53 55 56 56 57 61 61 62 63 66 69 69 69 72 75 75 75 75 77 77 77 78 78 79 81 81 81 83 84 86 86 89 91 91 92 93

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii

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 . . . . . . . 21.2 Zend\Barcode\Object\Code128 . . . . . 21.3 Zend\Barcode\Object\Codabar . . . . . . 21.4 Zend\Barcode\Object\Code25 . . . . . . 21.5 Zend\Barcode\Object\Code25interleaved 21.6 Zend\Barcode\Object\Ean2 . . . . . . . 21.7 Zend\Barcode\Object\Ean5 . . . . . . . 21.8 Zend\Barcode\Object\Ean8 . . . . . . . 21.9 Zend\Barcode\Object\Ean13 . . . . . . . 21.10 Zend\Barcode\Object\Code39 . . . . . . 21.11 Zend\Barcode\Object\Identcode . . . . . 21.12 Zend\Barcode\Object\Itf14 . . . . . . . . 21.13 Zend\Barcode\Object\Leitcode . . . . . . 21.14 Zend\Barcode\Object\Planet . . . . . . . 21.15 Zend\Barcode\Object\Postnet . . . . . . 21.16 Zend\Barcode\Object\Royalmail . . . . . 21.17 Zend\Barcode\Object\Upca . . . . . . . 21.18 Zend\Barcode\Object\Upce . . . . . . .

95 95 97 99 99 99 100 100 100 101 101 102 102 103 103 103 104 104 105 105 105 106

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 109 23.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 23.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 23.3 Basic conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 23.4 Available Methods dened by Zend\Cache\Storage\StorageInterface . . . . . . . . . . 110 23.5 Available Methods dened by Zend\Cache\Storage\AvailableSpaceCapableInterface112 23.6 Available Methods dened by Zend\Cache\Storage\TotalSpaceCapableInterface . . 112 23.7 Available Methods dened by Zend\Cache\Storage\ClearByNamespaceInterface . . . 113 23.8 Available Methods dened by Zend\Cache\Storage\ClearByPrefixInterface . . . . . 113 23.9 Available Methods dened by Zend\Cache\Storage\ClearExpiredInterface . . . . . . 113 23.10 Available Methods dened by Zend\Cache\Storage\FlushableInterface . . . . . . . . 113 23.11 Available Methods dened by Zend\Cache\Storage\IterableInterface (extends IteratorAggregate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 23.12 Available Methods dened by Zend\Cache\Storage\OptimizableInterface . . . . . . . 113 23.13 Available Methods dened by Zend\Cache\Storage\TaggableInterface . . . . . . . . . 114 23.14 Zend\Cache\Storage\Adapter\Apc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 23.15 Zend\Cache\Storage\Adapter\Dba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 23.16 Zend\Cache\Storage\Adapter\Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 23.17 Zend\Cache\Storage\Adapter\Memcached . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 23.18 Zend\Cache\Storage\Adapter\Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 23.19 Zend\Cache\Storage\Adapter\WinCache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 23.20 Zend\Cache\Storage\Adapter\ZendServerDisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 23.21 Zend\Cache\Storage\Adapter\ZendServerShm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 23.22 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 24 Zend\Cache\Storage\Capabilities 123 iii

24.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 24.2 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 24.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 25 Zend\Cache\Storage\Plugin 25.1 Overview . . . . . . . . . . . . . . . . . . . . . . . 25.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . 25.3 Zend\Cache\Storage\Adapter\ClearExpiredByFactor 25.4 Zend\Cache\Storage\Adapter\ExceptionHandler . . 25.5 Zend\Cache\Storage\Adapter\IgnoreUserAbort . . . 25.6 Zend\Cache\Storage\Adapter\OptimizeByFactor . . 25.7 Zend\Cache\Storage\Adapter\Serializer . . . . . . . 25.8 Available Methods . . . . . . . . . . . . . . . . . . 25.9 Examples . . . . . . . . . . . . . . . . . . . . . . . 127 127 127 128 128 128 128 128 129 129

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

26 Zend\Cache\Pattern 131 26.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 26.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 26.3 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 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 136 136 139 139 139 140 140 141 143 143 143 143 143 144 145 145 145 146 146 147

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

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 . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

iv

32 Introduction 33 Captcha Operation 34 CAPTCHA Adapters 34.1 Zend\Captcha\Word . . . 34.2 Zend\Captcha\Dumb . . . 34.3 Zend\Captcha\Figlet . . . 34.4 Zend\Captcha\Image . . . 34.5 Zend\Captcha\ReCaptcha

149 151 153 153 154 154 154 155

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

35 Introduction 157 35.1 Using Zend\Cong\Cong with a Reader Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 35.2 Using Zend\Cong\Cong with a PHP Conguration File . . . . . . . . . . . . . . . . . . . . . . . 158 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 159 161 161 162 164 165 167 167 168 169 170 170 173 173 174 174 175 175

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

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 177 40.1 Loading conguration le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 40.2 Storing conguration le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 41 Introduction 179 41.1 Writing console routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 41.2 Handling console requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 41.3 Adding console usage info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 42 Console routes and routing 42.1 Router conguration . . . 42.2 Basic route . . . . . . . . 42.3 Catchall route . . . . . . . 42.4 Console routes cheat-sheet 185 185 186 190 191

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

43 Console-aware modules 193 43.1 Application banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 43.2 Usage information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

v

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

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

203 203 205 206 207

45 Console adapters 211 45.1 Retreving console adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 45.2 Using console adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 46 Console prompts 46.1 Conrm . . 46.2 Line . . . . 46.3 Char . . . 46.4 Select . . . 47 Introduction 48 Encrypt/decrypt using block ciphers 215 216 216 217 218 221 223

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

49 Key derivation function 225 49.1 Pbkdf2 adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 49.2 SaltedS2k adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 50 Secure Password Storing 227

51 Public key cryptography 229 51.1 Dife-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 51.2 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 52 Zend\Db\Adapter 52.1 Creating an Adapter (Quickstart) . . . . . . . . . . . . . . . . 52.2 Creating an Adapter (By Injecting Dependencies) . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 235 236 236 237 237 237 239 240 241 243 243 244 244 247 247 248 248 251 252 252 252

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

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 . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

vi

55 Zend\Db\TableGateway 257 55.1 Basic Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 55.2 TableGateway Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 56 Zend\Db\RowGateway 261 56.1 Quickstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 57 Zend\Db\Metadata 263 57.1 Basic Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 58 Introduction to Zend\Di 267 58.1 Dependency Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 58.2 Dependency Injection Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 59 Zend\Di Quickstart 60 Zend\Di Denition 60.1 DenitionList . . . 60.2 RuntimeDenition 60.3 CompilerDenition 60.4 ClassDenition . . 269 273 273 273 274 275 277 277 278 279 281

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

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

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

65 Zend\Dom\Query 289 65.1 Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 65.2 Methods Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 66 The EventManager 66.1 Overview . . . . . . . 66.2 Quick Start . . . . . . 66.3 Conguration Options 66.4 Available Methods . . 66.5 Examples . . . . . . . 67 Introduction 293 293 293 296 297 298 303

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

68 Importing Feeds 305 68.1 Dumping the contents of a feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 69 Retrieving Feeds from Web Pages 70 Consuming an RSS Feed 71 Consuming an Atom Feed 307 309 311

vii

72 Consuming a Single Atom Entry

313

73 Zend\Feed and Security 315 73.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 73.2 Filtering data using HTMLPurier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 73.3 Escaping data using Zend\Escaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 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 319 319 319 320 321 322 323 323 326 327 333 333 333 334 336 338 341 341 341 342 343

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

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 349 77.1 What is a lter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 77.2 Basic usage of lters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 78 Using the StaticFilter 351 78.1 Double ltering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 79 Standard Filter Classes 79.1 Alnum Filter . . . . . . . . 79.2 Alpha Filter . . . . . . . . . 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 Filter . . . . 79.14 PregReplace . . . . . . . . 79.15 RealPath . . . . . . . . . . 79.16 StringToLower . . . . . . . 353 353 354 354 355 358 359 364 365 365 370 372 372 374 374 375 376

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

viii

79.17 79.18 79.19 79.20 79.21 79.22 79.23 79.24 79.25 79.26 79.27 79.28 79.29 79.30 79.31 79.32

StringToUpper . . . . . . . . . StringTrim . . . . . . . . . . . StripNewLines . . . . . . . . . StripTags . . . . . . . . . . . . Word\CamelCaseToDash . . . . Word\CamelCaseToSeparator . Word\CamelCaseToUnderscore Word\DashToCamelCase . . . . Word\DashToSeparator . . . . . Word\DashToUnderscore . . . Word\SeparatorToCamelCase . Word\SeparatorToDash . . . . . Word\SeparatorToSeparator . . Word\UnderscoreToCamelCase Word\UnderscoreToSeparator . Word\UnderscoreToDash . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

377 377 378 379 380 380 381 381 382 382 383 383 384 385 385 386

80 Filter Chains 387 80.1 Setting lter chain order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 80.2 Using the plugin manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 81 Zend\Filter\Inector 81.1 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2 Using Custom Filters . . . . . . . . . . . . . . . . . . . . 81.3 Setting the Inector Target . . . . . . . . . . . . . . . . . 81.4 Inection Rules . . . . . . . . . . . . . . . . . . . . . . . 81.5 Utility Methods . . . . . . . . . . . . . . . . . . . . . . . 81.6 Using a Traversable or an array with Zend\Filter\Inector 82 Writing Filters 83 Introduction to Zend\Form 84 Form Quick Start 84.1 Programmatic Form Creation . 84.2 Creation via Factory . . . . . . 84.3 Factory-backed Form Extension 84.4 Validating Forms . . . . . . . . 84.5 Hinting to the Input Filter . . . 84.6 Binding an object . . . . . . . . 84.7 Rendering . . . . . . . . . . . 84.8 Validation Groups . . . . . . . 84.9 Using Annotations . . . . . . . 389 389 390 390 391 393 393 395 397 399 399 400 404 405 406 408 409 412 412 415 418 422 423 423 425 427

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

85 Form Collections 85.1 Creating Fieldsets . . . . . . . . . . . . . . 85.2 The Form Element . . . . . . . . . . . . . . 85.3 The Controller . . . . . . . . . . . . . . . . 85.4 The View . . . . . . . . . . . . . . . . . . . 85.5 Adding New Elements Dynamically . . . . . 85.6 Validation groups for eldsets and collection

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

86 Form Elements 431 86.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 86.2 Element Base Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

ix

86.3 Standard Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 86.4 HTML5 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 87 Form View Helpers 87.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87.2 Standard Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87.3 HTML5 Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 459 459 470

88 Overview of Zend\Http 475 88.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 88.2 Zend\Http Request, Response and Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 89 The Request Class 89.1 Overview . . . . . . . 89.2 Quick Start . . . . . . 89.3 Conguration Options 89.4 Available Methods . . 89.5 Examples . . . . . . . 90 The Response Class 90.1 Overview . . . . . . . 90.2 Quick Start . . . . . . 90.3 Conguration Options 90.4 Available Methods . . 90.5 Examples . . . . . . . 477 477 477 478 478 481 483 483 483 484 484 486 489 489 489 490 490 492 492 493 497 497 497 498 498 501 503 503 503 506 507 508 510 513 513 513 515 516

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

91 The Headers Class 91.1 Overview . . . . . . . . . . . . . . 91.2 Quick Start . . . . . . . . . . . . . 91.3 Conguration Options . . . . . . . 91.4 Available Methods . . . . . . . . . 91.5 Zend\Http\Header\* Base Methods 91.6 List of HTTP Header Types . . . . 91.7 Examples . . . . . . . . . . . . . . 92 HTTP Client - Overview 92.1 Overview . . . . . . . 92.2 Quick Start . . . . . . 92.3 Conguration Options 92.4 Available Methods . . 92.5 Examples . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

93 HTTP Client - Connection Adapters 93.1 Overview . . . . . . . . . . . . . . . . 93.2 The Socket Adapter . . . . . . . . . . 93.3 The Proxy Adapter . . . . . . . . . . . 93.4 The cURL Adapter . . . . . . . . . . . 93.5 The Test Adapter . . . . . . . . . . . . 93.6 Creating your own connection adapters

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

94 HTTP Client - Advanced Usage 94.1 HTTP Redirections . . . . . . . . . . . . . . . 94.2 Adding Cookies and Using Cookie Persistence 94.3 Setting Custom Request Headers . . . . . . . 94.4 File Uploads . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

x

94.5 94.6 94.7 94.8

Sending Raw POST Data . . . . . . . . . . . . HTTP Authentication . . . . . . . . . . . . . . Sending Multiple Requests With the Same Client Data Streaming . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

516 517 517 518 521 521 521 521 522 523 523 524 524 524 524 525 525 525 526 527 528 529 529

95 HTTP Client - Static Usage 95.1 Overview . . . . . . . 95.2 Quick Start . . . . . . 95.3 Conguration Options 95.4 Available Methods . . 96 Translating 96.1 Adding translations . 96.2 Supported formats . 96.3 Setting a locale . . . 96.4 Translating messages 96.5 Caching . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

97 I18n View Helpers 97.1 Introduction . . . . . . . 97.2 CurrencyFormat Helper . 97.3 DateFormat Helper . . . . 97.4 NumberFormat Helper . . 97.5 Translate Helper . . . . . 97.6 TranslatePlural Helper . . 97.7 Abstract Translator Helper

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

98 I18n Filters 531 98.1 Alnum Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 98.2 Alpha Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 98.3 NumberFormat Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 99 I18n Validators 535

100Int 537 100.1 Supported options for Zend\I18n\Validator\Int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 100.2 Simple integer validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 100.3 Localized integer validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 101Introduction 102Introduction 539 543

103Basic Usage 545 103.1 Pretty-printing JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 104Advanced Usage of Zend\Json 104.1 JSON Objects . . . . . . 104.2 Encoding PHP objects . . 104.3 Internal Encoder/Decoder 104.4 JSON Expressions . . . . 105XML to JSON conversion 547 547 547 548 548 549

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

106Zend\Json\Server - JSON-RPC server 551 106.1 Advanced Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553

xi

107Introduction 559 107.1 Theory of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 108API overview 563 108.1 Conguration / options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 108.2 API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 109Zend\Ldap\Ldap 565 109.1 Zend\Ldap\Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 110Zend\Ldap\Attribute 111Zend\Ldap\Converter\Converter 112Zend\Ldap\Dn 113Zend\Ldap\Filter 114Zend\Ldap\Node 567 569 571 573 575

115Zend\Ldap\Node\RootDse 577 115.1 OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 115.2 ActiveDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 115.3 eDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 116Zend\Ldap\Node\Schema 583 116.1 OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 116.2 ActiveDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 117Zend\Ldap\Ldif\Encoder 587

118Usage Scenarios 589 118.1 Authentication scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 118.2 Basic CRUD operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 118.3 Extended operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 119Tools 119.1 Creation and modication of DN strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119.2 Using the lter API to create search lters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119.3 Modify LDAP entries using the Attribute API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Object oriented access to the LDAP tree using Zend\Ldap\Node 120.1 Basic CRUD operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120.2 Extended operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120.3 Tree traversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 593 593 593 595 595 595 595

121Getting information from the LDAP server 597 121.1 RootDSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 121.2 Schema Browsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 122Serializing LDAP data to and from LDIF 599 122.1 Serialize a LDAP entry to LDIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 122.2 Deserialize a LDIF string into a LDAP entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 123The AutoloaderFactory 603 123.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 123.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 xii

123.3 Conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 123.4 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 123.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 124The StandardAutoloader 124.1 Overview . . . . . . . 124.2 Quick Start . . . . . . 124.3 Conguration Options 124.4 Available Methods . . 124.5 Examples . . . . . . . 125The ClassMapAutoloader 125.1 Overview . . . . . . . 125.2 Quick Start . . . . . . 125.3 Conguration Options 125.4 Available Methods . . 125.5 Examples . . . . . . . 126The ModuleAutoloader 126.1 Overview . . . . . . . 126.2 Quickstart . . . . . . 126.3 Conguration Options 126.4 Available Methods . . 126.5 Examples . . . . . . . 605 605 606 607 607 608 609 609 609 610 610 611 613 613 613 613 614 614 615 615 615 616 616 617 619 619 619 620 620 621 625 625 625 626 626 626 627 627 627 627 627 628

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

127The SplAutoloader Interface 127.1 Overview . . . . . . . . 127.2 Quick Start . . . . . . . 127.3 Conguration Options . 127.4 Available Methods . . . 127.5 Examples . . . . . . . . 128The PluginClassLoader 128.1 Overview . . . . . . . 128.2 Quick Start . . . . . . 128.3 Conguration Options 128.4 Available Methods . . 128.5 Examples . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

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

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

131The Class Map Generator utility: bin/classmap_generator.php 629 131.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629

xiii

131.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 131.3 Conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 132Overview 132.1 Creating a Log . . . . . . 132.2 Logging Messages . . . . 132.3 Destroying a Log . . . . . 132.4 Using Built-in Priorities . 132.5 Understanding Log Events 132.6 Log PHP Errors . . . . . 133Writers 133.1 Writing to Streams . . . 133.2 Writing to Databases . . 133.3 Writing to FirePHP . . . 133.4 Stubbing Out the Writer 133.5 Testing with the Mock . 133.6 Compositing Writers . . 631 631 632 632 632 633 633 635 635 636 637 637 637 637

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

134Filters 639 134.1 Available lters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 135Formatters 135.1 Simple Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2 Formatting to XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.3 Formatting to FirePhp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 641 642 642

136Introduction 643 136.1 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 136.2 Conguring the default sendmail transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 137Zend\Mail\Message 137.1 Overview . . . . . . . 137.2 Quick Start . . . . . . 137.3 Conguration Options 137.4 Available Methods . . 137.5 Examples . . . . . . . 138Zend\Mail\Transport 138.1 Overview . . . . . . . 138.2 Quick Start . . . . . . 138.3 Conguration Options 138.4 Available Methods . . 138.5 Examples . . . . . . . 645 645 645 647 647 650 651 651 651 652 653 653 655 655 655 657 657 658

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

139Zend\Mail\Transport\SmtpOptions 139.1 Overview . . . . . . . . . . . . 139.2 Quick Start . . . . . . . . . . . 139.3 Conguration Options . . . . . 139.4 Available Methods . . . . . . . 139.5 Examples . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

140Zend\Mail\Transport\FileOptions 659 140.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 140.2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659

xiv

140.3 Conguration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 140.4 Available Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 140.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 141Introduction 661 141.1 Random number generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 141.2 Big integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 142Zend\Mime 665 142.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 142.2 Static Methods and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 142.3 Instantiating Zend\Mime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 143Zend\Mime\Message 143.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 143.2 Instantiation . . . . . . . . . . . . . . . . . . . . . . 143.3 Adding MIME Parts . . . . . . . . . . . . . . . . . . 143.4 Boundary handling . . . . . . . . . . . . . . . . . . . 143.5 Parsing a string to create a Zend\Mime\Message object 143.6 Available methods . . . . . . . . . . . . . . . . . . . 144Zend\Mime\Part 144.1 Introduction . . . . . . . . . . . . . . . . . . . . 144.2 Instantiation . . . . . . . . . . . . . . . . . . . . 144.3 Methods for rendering the message part to a string 144.4 Available methods . . . . . . . . . . . . . . . . . 667 667 667 667 667 668 668 669 669 669 669 670

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

145Introduction to the Module System 671 145.1 The autoload_*.php Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 146The Module Manager 673 146.1 Module Manager Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 146.2 Module Manager Listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 147The Module Class 147.1 A Minimal Module . . . . . . . 147.2 A Typical Module Class . . . . 147.3 The loadModules.post Event 147.4 The MVC bootstrap Event . . 677 677 677 678 679

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

148The Module Autoloader 681 148.1 Module Autoloader Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 148.2 Non-Standard / Explicit Module Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 148.3 Packaging Modules with Phar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 149Best Practices when Creating Modules 150Introduction to the MVC Layer 150.1 Basic Application Structure . . . . . 150.2 Basic Module Structure . . . . . . . 150.3 Bootstrapping an Application . . . . 150.4 Bootstrapping a Modular Application 150.5 Conclusion . . . . . . . . . . . . . . 685 687 688 688 690 691 692

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

151Quick Start 693 151.1 Install the Zend Skeleton Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 xv

151.2 151.3 151.4 151.5 151.6 151.7 151.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! . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

694 694 695 696 696 698 699 701 701 701 704 705 706 709 711 711 717 719 721

152Default Services 152.1 Theory of Operation . . . . . . . . 152.2 ServiceManager . . . . . . . . . . 152.3 ViewManager . . . . . . . . . . . . 152.4 Application Conguration Options 152.5 Default Conguration Options . . . 153Routing 153.1 Router Types . . . . . . . 153.2 HTTP Route Types . . . . 153.3 HTTP Routing Examples 153.4 Console Route Types . . . 154The MvcEvent

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

155Available Controllers 723 155.1 Common Interfaces Used With Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 155.2 The AbstractActionController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 155.3 The AbstractRestfulController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 156Controller Plugins 156.1 The FlashMessenger . . . . . 156.2 The Forward Plugin . . . . . 156.3 The Layout Plugin . . . . . . 156.4 The Params Plugin . . . . . . 156.5 The Post/Redirect/Get Plugin 156.6 The Redirect Plugin . . . . . 156.7 The Url Plugin . . . . . . . . 729 729 730 731 731 732 732 733

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

157Examples 735 157.1 Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 157.2 Bootstrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 158Pages 159Common page features 160ZendNavigationPageMvc 161Zend\Navigation\Page\Uri 162Creating custom page types 163Creating pages using the page factory 737 739 741 745 747 749

164Containers 751 164.1 Creating containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751 164.2 Adding pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757

xvi

164.3 164.4 164.5 164.6

Removing pages . Finding pages . . . Iterating containers Other operations .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

758 759 761 762 765 767 767 768 769 775 777 777 777 778 781 781 782 783 783 784 785

165Introduction 166Usage 166.1 Paginating data collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166.2 The DbSelect adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166.3 Rendering pages with view scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Conguration 168Advanced usage 168.1 Custom data source adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168.2 Custom scrolling styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168.3 Caching features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Introduction 169.1 Resources . . . . . . . . . . . . . 169.2 Roles . . . . . . . . . . . . . . . 169.3 Creating the Access Control List . 169.4 Registering Roles . . . . . . . . . 169.5 Dening Access Controls . . . . 169.6 Querying an ACL . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

170Rening Access Controls 787 170.1 Precise Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 170.2 Removing Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 171Advanced Usage 791 171.1 Storing ACL Data for Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 171.2 Writing Conditional ACL Rules with Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 172Introduction 793 172.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 172.2 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 172.3 Dynamic Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 173Examples 795 173.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795 173.2 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 173.3 Dynamic Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 174Introduction 799

175Zend\Server\Reection 801 175.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 175.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 176Zend\ServiceManager 803

177Zend\ServiceManager Quick Start 805 177.1 Using Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 177.2 Modules as Service Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806

xvii

177.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 178Zend\Soap\Server 178.1 Zend\Soap\Server constructor . . . . . 178.2 Methods to dene Web Service API . . 178.3 Request and response objects handling 178.4 Document/Literal WSDL Handling . . 811 811 812 813 815

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

179Zend\Soap\Client 817 179.1 Zend\Soap\Client Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817 179.2 Performing SOAP Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818 180WSDL Accessor 180.1 Zend\Soap\Wsdl constructor . . 180.2 addMessage() method . . . . . 180.3 addPortType() method . . . . . 180.4 addPortOperation() method . . 180.5 addBinding() method . . . . . . 180.6 addBindingOperation() method 180.7 addSoapBinding() method . . . 180.8 addSoapOperation() method . . 180.9 addService() method . . . . . . 180.10Type mapping . . . . . . . . . 180.11addDocumentation() method . . 180.12Get nalized WSDL document 181AutoDiscovery 181.1 AutoDiscovery Introduction 181.2 Class autodiscovering . . . 181.3 Functions autodiscovering . 181.4 Autodiscovering Datatypes . 181.5 WSDL Binding Styles . . . 821 821 821 822 822 822 823 823 823 823 824 825 826 827 827 828 829 829 829

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

182Zend\Stdlib\Hydrator 831 182.1 HydratorInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 182.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 182.3 Available Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832 183Introduction 833

184Creating tag clouds with Zend\Tag\Cloud 835 184.1 Decorators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836 185Zend\Text\Figlet 186Zend\Text\Table 187Zend\Uri 187.1 Overview . . . . . . . . . . . 187.2 Creating a New URI . . . . . 187.3 Manipulating an Existing URI 187.4 Common Instance Methods . 839 841 843 843 843 844 844

. . . .

. . . .

. . . .

. . . .

. . . .

. .