Book Image

Mastering Yii

By : Charles R. Portwood ll
Book Image

Mastering Yii

By: Charles R. Portwood ll

Overview of this book

The successor of Yii Framework 1.1, Yii 2 is a complete rewrite of Yii Framework, one of the most popular PHP 5 frameworks around for making modern web applications. The update embraces the best practices and protocols established with newer versions of PHP, while still maintaining the simple, fast, and extendable behavior found in its predecessor. This book has been written to enhance your skills and knowledge with Yii Framework 2. Starting with configuration and how to initialize new projects, you’ll learn how to configure, manage, and use every aspect of Yii2 from Gii, DAO, Query Builder, Active Record, and migrations, to asset manager. You'll also discover how to automatically test your code using codeception. With this book by your side, you’ll have all the skills you need to quickly create rich modern web and console applications with Yii 2.
Table of Contents (20 chapters)
Mastering Yii
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
5
Modules, Widgets, and Helpers
13
Debugging and Deploying
Index

Custom API controllers


While convenient, yii\rest\ActiveController doesn't solve every problem with creating APIs. When not using yii\rest\ActiveController, you'll want to extend your controller classes from yii\rest\Controller in order to take full advantage the built-in REST API defaults implemented by yii\rest\Controller. The following sections illustrate some additional information on creating custom API controllers.

Returning data

There are several way in which we can think about custom API controllers in Yii2. The easiest way to think about passing data to our clients is to bypass the view portion of our MVC model and directly return data from our controllers. For example, if we were to create a new controller called SiteController within our controller's namespace, we could directly return data from our newly created controller, as follows:

<?php

namespace app\controllers;

use Yii;

class SiteController extends \yii\rest\Controller
{
    public function actionIndex()
    {
    ...