Book Image

Web Application Development with Yii 2 and PHP

By : Mark Safronov, Jeffrey Winesett
Book Image

Web Application Development with Yii 2 and PHP

By: Mark Safronov, Jeffrey Winesett

Overview of this book

<p>Yii is a high performance PHP framework used for rapid web application development. It is well designed, well supported, easy to learn, and easy to maintain. This book embraces the learn-by-example methodology to show you the most important features of the Yii 2 framework. Throughout the course of this book, you will build a simple real-world application; each chapter will introduce you to a new functionality and show you how to tweak your application. Instead of trying to be an all-encompassing reference about the framework, this is a walkthrough of the really important pieces of information that you have to understand in detail.</p> <p>You will learn how to use Yii's active record and CRUD scaffolding to manage the data in your database. Authentication, extensions, events and behaviors, and route management are just some of the many other features of Yii that you will learn from this book. By the end of this book, you will have a basic CRM application that is all set for service!</p>
Table of Contents (22 chapters)
Web Application Development with Yii 2 and PHP
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

A custom response formatter


As was mentioned at the beginning of this chapter, the last stage of processing the data before sending it to the client is passing it through the response formatter. Anything that the controller action returned is wrapped into the Response object, which decides how to ultimately send the data down the pipe. Let's see how we can utilize a custom response formatter for our purposes.

Probably the most obvious use of the custom response formatter is returning the JSON data for a given route. The following is a throwaway snippet of the exploratory code, which returns the list of attributes of the registered services from the database:

    public function actionJson()
    {
        $models = ServiceRecord::find()->all();
        $data = array_map(function ($model) {return $model->attributes;}, $models);

        $response = Yii::$app->response;
        $response->format = Response::FORMAT_JSON;
        $response->data = $data;

        return $response...