arayüzünü sağlar. Yani PSR-7 desteği olan kütüphaneler ile rahatça çalışabilir. ▸ Zend Stratigility ile bir middleware altyapısı sunuyor. ▸ Routing altyapısı ve bir bunun için bir abstraction sunuyor. ▸ Dependency Injection için altyapı sunuyor. ▸ Templating için soyut bir arayüz (abstraction) sunuyor. ▸ Hata işleme/yönetme için Zend Stratigility sayesinde bir katman sunar. (ErrorHandler Middleware)
içeren PHP paketidir. ▸ Node’daki gibi http.Server gibi bir paradigma sunuyor. ▸ Request’leri ve Response’ları PSR-7 standartlarına uygun hale getiriyor. ▸ Sadece Zend Framework için değil bir çok yerde kullanılabilecek genel bir yapı sunuyor.
için bir arayüzdür. ▸ Neler var : ▸ Psr\Http\Message\MessageInterface (İstek ve cevap için ortak olan HTTP mesaj bilgilerini içerir) ▸ Psr\Http\Message\RequestInterface (Alıcı(Client) tarafındaki istektir) ▸ Psr\Http\Message\ServerRequestInterface (Sunucu tarafındaki(Server-Side) HTTP isteğidir.) ▸ Psr\Http\Message\ResponseInterface (Sunucu tarafı cevaptır.) ▸ Psr\Http\Message\StreamInterface (PHP Stream’ı kapsayan bir veri akış yapısıdır.) ▸ Psr\Http\Message\UriInterface (URI arayüzü) ▸ Psr\Http\Message\UploadedFileInterface (Dosya yükleme için oluşturulmuş arayüzdür.)
diyebiliriz. ▸ Middleware yapısı ile uygulama geliştirmenizi sağlar. ▸ Bir PSR-7 kütüphanesine ihtiyaç duyar. Tabiki önerilenler arasında Zend Diactoros var.
▸ Zend Expressive ise daha dinamik bir routing yapısı sunmaktadır. ▸ Routing yapısı Expressive içerisinde Abstract haldedir. Yani bu yapıyı kullanarak başka Routing Kütüphanelerini Expressive içerisinde kullanabilirsiniz. ▸ Şu anda Aura.Router, FastRoute, ve Zend-MVC hali hazırda entegre edilmiş halde.
için iki yöntem sunmaktadır. ▸ Piping (Stratigility) : ▸ Her çalışma zamanında çalıştırılacaksa ▸ Hata ayıklamak için kullanılacaksa ▸ Uygulamaları ayırmak için ▸ Routing (Expressive) : ▸ Belirli bir istekte çalışması için ▸ Dinamik routing için ▸ HTTP metodlarını ayırmak için ▸ URL katmanlarını oluşturmak için
teşvik eder. ▸ ExpressiveApp “Container Interop” arayüzünü implement eden DI Container’a ihtiyaç duyar. Bu Container middleware’ları LazyLoad etmek için kullanılır. ▸ zend-servicemanager, pimple-interop, aura.di şu anda hali hazırda kullanılabilir durumda. Container Interop arayüzünü implement eden diğer DI kütüphaneleri için bir wrapper yazmanız gerekebilir.
isteğe göre kullanabilirsiniz. ▸ Hali hazırda Plates, Twig ve ZendView, Expressive ile entegre edilebilir. ▸ Başka bir template engine kullanmak istiyorsanız Zend\Expressive\Template\TemplateRendererInterface arayüzünü implement eden bir yapı kurmanız yeterlidir.